【发布时间】:2016-11-16 09:32:17
【问题描述】:
尝试使用通常的递归方式扩展包:
template<bool first> int func1(int value = 0) {
return some_func(first, value);
}
template<bool first, bool... args> int func1(int value = 0) {
return func1<args...>(some_func(first, value) );
}
在编译时递归的最后一步,func1的调用是模棱两可的, 第一个候选人是第一个功能,很明显,在我的情况下是一些具体的专业:
int func1(int) [bool first = false]
但第二个是
int func1(int) [bool first = false;布尔 ...args = {}]
你看这也是正确的 - 在第一个参数之后的参数集是空的。 有什么想法可以防止这种情况吗?
谢谢你
【问题讨论】: