我正在尝试测试一点C ++ 17。我想做的是:
[[nodiscard]] int get_value1()
{
return 42;
}
inline void start()
{
// Should generate warning
get_value1();
}
然而,它没有。我正在使用Visual Studio 2017.警告级别设置为Level4(\ W4)。我已将C ++语言标准设置为ISO C ++最新草案标准(/ std:c ++ latest)。
但它不会产生我想要的警告。这是为什么?另外,还有一个小问题:选择语言标准的选项卡只出现在Debug配置中,而不是Release。这是为什么?释放对nodiscard的抱怨,这是否意味着Release是在C ++ 14中?
编辑:我自然意味着在第二部分发出警告。纠正。 :)
答案 0 :(得分:1)
实际上只有VS 2017.3以后才支持[[nodiscard]],它应该为您提供警告,而不是错误。据我所知,规范假设编译器可能警告你。可能不会。