ача функции как параметра друг

Автор admin Пятница, 22 мая 2009 11:32

ача функции как параметра другой функции, которая «перебирает» числа0..п: //: С05:Accumulate.срр // Передача “функции” как паранетра на стадии компиляции #include <1ostream> using namespace std: // Накопление результатов F(0)..F(n) tempiate class F> struct Accumulate { enum {val – Accumulates-1. F>:;val + F::val}: }: // Критерий остановки (возвращает значение F(0)) tempiate class F> struct Accumulated. F> { enum {val – F<0>::val}: }: // Различные “функции”: tempiate<1nt n> struct Identity { enum {val – n}: }: tempiate<1nt n> struct Square { enum {val – n*n}: }: tempiate struct Cube { enum {val – n*n*n}; }: int mainO { cout « Accumulated. Ident1ty>::val « endl; // 10 cout « Accumulated. Square>::val « endl: // 30 cout « Accumulated. Cube>::val « endl: // 100 } ///:- Основной шаблон Accumulate вычисляет сумму F(n) + F(n -1)… F(0). Критерий остановки определяется неполной реализацией, которая «возвращает» F(0). Параметр F сам по себе является шаблоном и работает как функция (по аналогии с предыдущими примерами этого раздела). Шаблоны Identity, Square и


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