功能类似于模板参数

时间:2011-02-13 18:40:09

标签: c++ templates

任何人都可以解释一下,如何编写boost::function中的模板参数(例如boost::function<int (float,bool)>)。什么是正确的语法?

我试试这个:

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

但它不起作用。

1 个答案:

答案 0 :(得分:5)

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;
};