n =  count_if(p,   p +  strlen(p),

bind2nd(greater_equal<char>(),   'k'));

Шаблон bind2nd называется привязкой (являющейся разновидностью адаптера функции). Поскольку два выражения

ch >=   'к'      и     !(ch <   'к')

эквивалентны, нас может заинтересовать, допустимо ли использовать не­кий аналог второго выражения в качестве третьего аргумента функции count_if Это действительно можно сделать, если применить другой тип адаптера функции, называемый отрицателем:

n =  count_if(p,   р +  strlen(p),

notl(bind2nd(less<char>(),   'k')));

Мы обсудим адаптеры функций (и прочие адаптеры) более подробно в главе 6.


<< назад вперед >>