任何人都可以解释一下,如何编写boost::function
中的模板参数(例如boost::function<int (float,bool)>
)。什么是正确的语法?
我试试这个:
template <typename T (typename Arg1,typename Arg2)>
struct func{};
但它不起作用。
答案 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;
};