任何人都可以向我解释如何编写模板参数,例如boost::function
(例如boost::function<int (float,bool)>
)。什么是正确的语法?
我尝试这样:
template <typename T (typename Arg1,typename Arg2)>
struct func{};
但它不起作用。
最佳答案
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;
};
关于c++ - 功能类似于模板参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4986058/