在 C++17 之前指定 [[nodiscard]] 的方法

Ways to specify [[nodiscard]] before C++17

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

  • GCC/Clang: __attribute__((warn_unused_result))
  • MSVC:_Check_return_ _MSC_VER >= 1700(Visual Studio 2012)