应该在 c++20 中抑制关于缺少类型名的警告吗?
Should warnings about missing typename supressed in 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
是(几乎?)完全可选的,并且在这方面是 non-conforming。为了与 MSVC 兼容,Clang 显然也可以这样做。警告说您的代码是 non-conforming,可能不适用于其他编译器(尤其是 GCC)。
警告信息如:
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
是(几乎?)完全可选的,并且在这方面是 non-conforming。为了与 MSVC 兼容,Clang 显然也可以这样做。警告说您的代码是 non-conforming,可能不适用于其他编译器(尤其是 GCC)。