据我所知,以下代码:
template<typename T>
struct S {
S<T>();
};
Run Code Online (Sandbox Code Playgroud)
是格式良好的,即使<T>在构造函数的声明中是多余的。
但是,在 gcc 主干上(但不是在 gcc10.2 上),-std=c++20这会出现错误:
error: expected unqualified-id before ')' token
3 | S<T>();
^
Run Code Online (Sandbox Code Playgroud)
该代码编译的铿锵树干-std=c++20。这是一个错误,还是 C++20 中尚未在所有编译器中实现的重大更改?