[英]Trying out [[nodiscard]] with no success
我正在尝试测试一点C ++ 17。 我正在尝试做:
[[nodiscard]] int get_value1()
{
return 42;
}
inline void start()
{
// Should generate warning
get_value1();
}
但是,事实并非如此。 我正在使用Visual Studio2017。警告级别设置为Level4(\\ W4)。 我已将C ++语言标准设置为ISO C ++最新草稿标准(/ std:c ++ latest)。
但是它不会生成我想要的警告。 这是为什么? 另外,还有一个小问题:用于选择语言标准的选项卡仅出现在“调试”配置中,而不出现在“发布”中。 这是为什么? Release在nodiscard上抱怨,这是否意味着Release在C ++ 14中?
编辑:自然,我的意思是在第二部分中发出警告。 已更正。 :)
实际上[[nodiscard]]仅从VS 2017.3开始才受支持,它应该给您一个警告 ,而不是error 。 据我了解,规范假设编译器可能会警告您。 可能不会。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.