有没有办法解决以下问题:
此代码生成 C4702 警告“无法访问的代码”(在 VC++ 15.8 上/std:c++17
)
template <typename T, typename VariantType>
inline bool MatchMonostate( VariantType& variant )
{
SUPPRESS_C4100( variant );
if constexpr ( std::is_same_v<T, std::monostate> )
{
variant = std::monostate();
return true;
}
return false; // !!! unreachable if the above is true !!! => C4702
}
为了抑制 C4100 '未引用的形式参数'警告,我已经在使用这个技巧
#define SUPPRESS_C4100(x) ((void)x)
添加的简单想法
else
{
return false;
}
导致警告 C4715 '并非所有控制路径都返回一个值'。