不允许使用多个模板参数列表

时间:2016-01-08 15:01:06

标签: c++ templates variadic-templates

这里有什么问题?

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

我是使用模板功能的新手。

1 个答案:

答案 0 :(得分:9)

不同之处在于,在第二种情况下,您可以使用模板参数创建一组不同的结构,所有结构都具有单个函数指针成员。

在第一种情况下,您将拥有一个具有无限数量的函数指针成员的结构类型。你不能拥有它,如果没有别的,因为同一结构类型的所有对象必须具有相同的大小。