Шрифт:
Помните, что базовые классы
Если бы классы функторов не определялись производными от
Объекты функций STL построены по образцу функций C++, а функции C++ характеризуются единственным набором типов параметров и одним типом возвращаемого значения. В результате STL неявно подразумевает, что каждый класс функтора содержит единственную функцию
Иногда в классе функтора бывает разумно определить несколько форм вызова, тем самым отказавшись от адаптируемости (примеры таких ситуаций приведены в советах 7, 20, 23 и 25), но это скорее исключение, а не правило. Адаптируемость важна, и о ней следует помнить при разработке классов функторов.
Совет 41. Разберитесь, для чего нужны ptr_fun, mem_fun и mem_fun_ref
Загадочные функции
Действительно, имена выглядят довольно странно, но функции
В C++ существуют три варианта синтаксиса вызова функции
Рассмотрим гипотетическую функцию, предназначенную для «проверки» объектов
Допустим, у нас имеется контейнер объектов
Для проверки всех объектов
Но представьте, что
В идеальном мире мы могли бы воспользоваться