{ typedef typename Op::first_a

Автор admin Понедельник, 25 мая 2009 11:32

{ typedef typename Op::first_argument_type Argl_t: return binderlst<0p>(f. Argl_t(val)); } Параметр шаблона Op, представляющий тип бинарной функции, адаптируемой адаптером bindlst(), должен содержать вложенное определение типа с именем first_argument_type (обратите также внимание на ключевое слово typename, которое, как отмечалось в главе 5, сообщает компилятору, что речь идет об имени вложенного типа). Теперь посмотрим, как binderlst использует имена типов Ор при объявлении своего оператора вызова функции: 268 Глава 6 • Обобщенные алгоритмы // Внутри реализации binderlst<0p> typename Op::result_type operatorO(const typename Op::second_argument_type& x) const: Объекты функций, классы которых предоставляют эти имена типов, называются адаптируемыми объектами функций. Поскольку указанные имена должны поддерживаться всеми стандартными объектами функций, а также любыми объектами функций, которые должны использоваться с адаптерами, в заголовочный файл входят два шаблона, автоматически определяющие эти имена: unary_function и binary_function. Вы просто наследуете от этих классов при заполнении ти


Комментарии закрыты.