Передача функции в качестве аргумента шаблона класса

Не зная типа функции, я объявляю ее указатель с помощью нижеприведенной техники и инициализирую указатель функции.

template<typename T>
struct Declare { typedef T Type; }; // for declaring any func ptr

void fun () {}

int main ()
{
  Declare<fun>::Type pf = &fun;  // can't use C++0x 'auto'
}

Однако это дает ошибку компиляции как, error: ожидаемый тип, получил "удовольствие" . Хотя тип любого метода известен во время компиляции. Недопустима ли передача функции в шаблон класса , как указано выше?

[Примечание: замена fun на void (*) () работает нормально. Но это не то, что нужно.]

5
задан iammilind 17 April 2011 в 04:17
поделиться