繁体   English   中英

尝试[[nodiscard]]失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM