Tag: 函数模板

带有包扩展的variablesfunction模板不在最后一个参数中

我想知道为什么下面的代码不能编译: struct S { template <typename… T> S(T…, int); }; S c{0, 0}; 这段代码无法使用clang和GCC 4.8进行编译。 这是clang的错误: test.cpp:7:3: error: no matching constructor for initialization of 'S' S c{0, 0}; ^~~~~~~ test.cpp:4:5: note: candidate constructor not viable: requires 1 argument, but 2 were provided S(T…, int); ^ 在我看来,这应该起作用,而T应该被推断为是一包长度为1的包。 如果标准禁止这样做,有没有人知道为什么?