Функция как параметры шаблона - PullRequest
1 голос
/ 13 февраля 2011

Может кто-нибудь объяснить мне, как написать параметры шаблона, как в boost::function (например, boost::function<int (float,bool)>). Что такое правильный синтаксис?

Я пытаюсь это:

template <typename T (typename Arg1,typename Arg2)>
struct func{};

но это не работает.

1 Ответ

5 голосов
/ 13 февраля 2011
template <typename T>
struct func {};

int (float, bool) сам по себе уже является типом.


Если вы только хотите сопоставить типы, являющиеся функцией с 2 ​​параметрами, создайте специализацию следующим образом:

template <typename T>
struct func;

template <typename R, typename T1, typename T2>
struct func<R(T1,T2)> {
   typedef R return_type;
   typedef T1 first_argument_type;
   typedef T2 second_argument_type;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...