是否应该在c++20中抑制有关缺少typename的警告

Should warnings about missing typename supressed in c++20?

本文关键字:typename 警告 c++20 是否      更新时间:2024-09-23

警告消息,如:

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是(几乎?(完全可选的,在这方面是不符合的。Clang显然也可以做到这一点,因为它与MSVC兼容。警告表示您的代码不符合要求,可能无法在其他编译器上运行(尤其是在GCC上(。