【问题标题】:Ways to specify [[nodiscard]] before C++17在 C++17 之前指定 [[nodiscard]] 的方法
【发布时间】:2017-12-24 17:39:42
【问题描述】:

我需要非 C++17 代码库中 [[nodiscard]] 属性的语义。我想在 C++17 之前有一些依赖于编译器的方法来实现这一点。有人知道这些吗?我对 clang、gcc 和 MSVC 感兴趣。

【问题讨论】:

  • 什么语义? nodiscard 所做的只是说“嘿,如果这个返回值被丢弃,你可能应该发出警告”。
  • @Cubic:正是这个!
  • 编译器文档是个不错的选择。
  • GCC 可以使用__attribute__((warn_unused_result))

标签: c++ nodiscard


【解决方案1】:
  • GCC/Clang:__attribute__((warn_unused_result))
  • MSVC:_Check_return_ for _MSC_VER >= 1700 (Visual Studio 2012)

【讨论】:

  • 最近,[[gnu::warn_unused_result]]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 2019-06-21
  • 2017-01-11
  • 2019-01-18
  • 2020-05-18
相关资源
最近更新 更多