New*_*ine 3 c++ compiler-warnings c++20
警告消息如:
missing 'typename' prior to dependent type name ... [-Wtypename-missing]
和
template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension [-Wmicrosoft-template]
如果我理解正确的话,c++20 放松了对typename. 这是否意味着这些警告已经过时了?typename或者我应该在出现警告时添加(烦人的) ?(我使用的是 Visual Studio / Clang12 / std=C++20。)
不,警告很有用。修复你的代码。
C++20稍微typename放宽了规则。但这与此警告无关。
MSVC 认为typename(几乎?)完全可选,并且在这方面是不符合标准的。为了与 MSVC 兼容,Clang 显然也可以做到这一点。该警告表明您的代码不合格,并且可能无法在其他编译器上运行(尤其是在 GCC 上)。