不允许使用多个模板参数列表
multiple template parameter lists are not allowed
这里有什么问题?
struct fbe {
char *fbtName;
template<typename T, typename... vT>
T(*funcptr)(T, vT... );
};
这样写有什么区别?
template<typename T, typename... vT>
struct fbe {
char *fbtName;
T(*funcptr)(T, vT... );
};
我对使用模板函数还很陌生。
不同之处在于,在第二种情况下,您可以使用模板参数创建一组不同的结构,所有结构都具有一个函数指针成员。
在第一种情况下,您将拥有一个具有无限数量的函数指针成员的结构类型。你不能有那个,如果没有别的,因为相同结构类型的所有对象必须具有相同的大小。
这里有什么问题?
struct fbe {
char *fbtName;
template<typename T, typename... vT>
T(*funcptr)(T, vT... );
};
这样写有什么区别?
template<typename T, typename... vT>
struct fbe {
char *fbtName;
T(*funcptr)(T, vT... );
};
我对使用模板函数还很陌生。
不同之处在于,在第二种情况下,您可以使用模板参数创建一组不同的结构,所有结构都具有一个函数指针成员。
在第一种情况下,您将拥有一个具有无限数量的函数指针成员的结构类型。你不能有那个,如果没有别的,因为相同结构类型的所有对象必须具有相同的大小。