> #include using name
Автор admin
Вторник, 26 мая 2009 11:32
> #include using namespace std: tempiate class unary_composer { Fl fl: F2 f2; public: unary_composer(Fl fone. F2 ftwo) : fl(fone). f2(ftwo) {} R operator()(E x) { return fl(f2(x)); Объекты функций 281 } }: tempiate unary_composer compose(Fl fl. F2 f2) { return unary_composer(fl. f2): } int mainO { double x = compose(atof. mem_fun_ref(&string::c_str))(“12.34″); assert(x == 12.34); } III:- В объекте unary_composer сохраняются указатели на функции atof и string::c_str, причем последняя функция применяется первой при вызове operator(). Адаптер compose() упрощает вызов, чтобы нам не приходилось явно передавать все четыре аргумента шаблона — F1 и F2 определяются на основании вызова. Однако было бы гораздо удобнее, если бы мы могли вообще обойтись без передачи аргументов шаблона. Чтобы это стало возможным, следует обеспечить наличие необходимых определений типов для адаптируемых объектов функций. Иначе говоря, мы будем предполагать, что функции, входя
Комментарии закрыты.
Последние комментарии