coy*_*508 19 c++ templates template-specialization variadic-templates c++11
template <size_t size, typename ...Params>
void doStuff(Params...) {
}
template <>
void doStuff<size_t(1), int, bool>(int, bool) {
}
int main(int, char**) {
doStuff<1,int,bool>(1, false);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这不会编译,第二个doStuff声明给了我,error: template-id ‘doStuff<1u, int, bool>’ for ‘void doStuff(int, bool)’ does not match any template declaration但它明确地将第一个声明与variadic模板参数匹配.
如何专门研究可变参数模板?
Pla*_*aHH 12
语法是正确的(afaik,并且clang ++接受它),但你的编译器可能还没有up2date.
如果你使用gcc,它的可变参数模板支持是非常不完整的,甚至最近的svn版本也不支持专业化(这就是你使用尖端技术时的情况,遗憾的是gcc只实现了一个非常早期不完整的可变参数模板提议,从那时起并没有跟上太多,而clang开始很晚,但相当完整)
| 归档时间: |
|
| 查看次数: |
5879 次 |
| 最近记录: |