拥有以下代码,我有点困惑为什么第二个foo
被视为部分专业化,而后者不是(IMO 两者都不应该是partial)。
template <bool IS_TRUE>
int foo();
// Doesn't work!?
template <bool IS_TRUE>
int foo<IS_TRUE>() {
return 0;
}
template <>
int foo<true>() {
return 0;
}
int main() {
return foo<true>();
}
在第二个foo
gcc 抱怨:
错误:不允许函数模板部分特化“foo”
有人可以解释一下,我缺少什么细节。