尝试 [[nodiscard]] 没有成功
Trying out [[nodiscard]] with no success
我正在尝试测试一些 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)。
但它没有生成我想要的警告。这是为什么?另外,还有一个小问题:select 语言标准的选项卡仅出现在调试配置中,而不出现在发布版中。这是为什么? Release 在 nodiscard 上抱怨,这是否意味着 Release 在 C++14 中?
编辑:当然我的意思是第二部分中的警告。更正。 :)
实际上 [[nodiscard]] 仅在 VS 2017.3 之后才受支持,它应该给您 警告 ,而不是 错误 。据我了解,规范假定编译器 可能 警告您。也可能不会。
我正在尝试测试一些 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)。
但它没有生成我想要的警告。这是为什么?另外,还有一个小问题:select 语言标准的选项卡仅出现在调试配置中,而不出现在发布版中。这是为什么? Release 在 nodiscard 上抱怨,这是否意味着 Release 在 C++14 中?
编辑:当然我的意思是第二部分中的警告。更正。 :)
实际上 [[nodiscard]] 仅在 VS 2017.3 之后才受支持,它应该给您 警告 ,而不是 错误 。据我了解,规范假定编译器 可能 警告您。也可能不会。