- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试测试一些 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)。
但它不会生成我想要的警告。这是为什么?另外,还有一个小问题:选择语言标准的选项卡只出现在调试配置中,而不出现在发布中。这是为什么? Release 在 nodiscard 上提示,这是否意味着 Release 在 C++14 中?
编辑:当然我的意思是第二部分中的警告。更正。 :)
最佳答案
实际上 [[nodiscard]] 仅在 VS 2017.3 之后才受支持,它应该给你一个警告,而不是一个错误。据我了解,规范假设编译器可能会警告您。也可能不会。
关于c++ - 尝试 [[nodiscard]] 没有成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44996733/
C++17 在 p0189r1 中引入了新属性 [[nodiscard]] .当一个函数被这个属性修饰时,返回类型不能被丢弃。如果它被丢弃,则会发出警告。 例子: [[nodiscard]] void
C++17 有一个新属性,[[nodiscard]]。 假设我有一个 Result 结构,它有这个属性: struct [[nodiscard]] Result { }; 现在,如果我调用返回 Res
我想使用第三方函数,它通过充满函数指针的结构提供其 API。例如: struct S { using p_func1 = int(*)(int, int); p_func1 func1
我有一个函数对象,它是另一个函数的包装器: template class Wrapper { private: FuncT funcToWrap; public:
从 C++20 开始,[[nodiscard]]可以应用于构造函数。 http://wg21.link/p1771有例子: struct [[nodiscard]] my_scopeguard { /
在哪些用例中使用 [[nodiscard]] 有益类型? 关于类型,[[nodiscard]]如果任何返回该类型实例的函数的返回值被省略,则发出警告; (引自 p0068r0): If [[nodis
我正在尝试测试一些 C++17。我正在尝试: [[nodiscard]] int get_value1() { return 42; } inline void start() { /
C++17 标准中引入的 [[nodiscard]] 属性,如果是 ... potentially-evaluated discarded-value expression,..., implemen
应用于函数时,[[nodiscard]]属性鼓励编译器在被丢弃的表达式中使用而不是强制转换为 void 时发出警告。示例: [[nodiscard]] int callable_return_not_
说我有 [[nodiscard]] int foo () { return 0; } int main () { foo (); } 然后 error: ignoring return
在 C++ 中,我们可以使用“[[nodiscard]]”来装饰我们的返回类型,如果结果未使用,则会触发编译器警告。 这对于强制执行错误代码特别有用 auto dont_forget_to_check
由于 this问题和答案,属性是否被继承并不是 100% 清楚,但可能不是,因为它没有在标准中说明。这就是为什么如果我们只有标记为 nodiscard 的声明在基类中,并使用 Clang 编译,如果我
我想防止人们在不处理返回值的情况下调用 lambda。 Clang 4.0 拒绝我尝试过的一切,使用 -std=c++1z 进行编译: auto x = [&] [[nodiscard]] () {
我有一个 C++ 项目,其中 clang-tidy建议添加[[nodiscard]]到处。这是一个好习惯吗?我的理解是[[nodiscard]]仅当忽略返回值对程序可能是致命的时才应使用。我有一个对象
我想知道是否有办法拥有这样的东西: using CallbackType = std::function; (我知道上面的代码不会被编译并提示 nodiscard 不能应用于类型!) 我的目标是强制回
您可以使用 [[nodiscard]] 属性声明一个类。当您从此类的语义中知道无论何时从函数返回它都必须用于某些事情时,它可能很有用。我有这种情况,用 [[nodiscard]] 标记类而不是返回它的
C++17 已添加 [[nodiscard]] . C++20 添加了 [[nodiscard]] 的使用在 empty方法,例如 vector::empty() -- 可能是为了避免用户混淆 cle
我有一个标有 C++17 的 [[nodiscard]] 的结构属性。它是这样定义的: struct [[nodiscard]] MyObject final { explicit MyObj
我需要非 C++17 代码库中 [[nodiscard]] 属性的语义。我想在 C++17 之前有依赖于编译器的方法可以实现这一点。有谁知道这些?我对 clang、gcc 和 MSVC 感兴趣。 最佳
最近发布了 Visual Studio 2019 的 16.9.5 版本。它显然引入了新的警告: [[nodiscard]] __declspec(dllexport) bool foo(); //o
我是一名优秀的程序员,十分优秀!