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)
这是编译器错误吗?
这个问题似乎表明它应该有效。