小编Rad*_*ich的帖子

模板函数中的默认模板需要空尖括号 <>

gcc 11.2 似乎无法编译这个:

template <typename T = int>
struct Test {};
template <typename T> void foo(T& bar) {}
int main()
{
    Test t;
    foo<Test>(t);
}
Run Code Online (Sandbox Code Playgroud)

没有问题

template <typename T = int>
struct Test {};
template <typename T> void foo(T& bar) {}
int main()
{
    Test t;
    foo<Test<>>(t);
}
Run Code Online (Sandbox Code Playgroud)

这是编译器错误吗?

这个问题似乎表明它应该有效。

c++ templates function-templates default-template-argument

3
推荐指数
1
解决办法
377
查看次数