【发布时间】:2020-06-12 00:40:23
【问题描述】:
在哪些用例中使用[[nodiscard]] 类型是有益的?
在类型上,如果任何返回该类型实例的函数的返回值被省略,[[nodiscard]] 会发出警告; (引自 p0068r0):
如果 [[nodiscard]] 被标记在一个类型上,它使得所有返回该类型的函数都是隐式的 [[nodiscard]]。
虽然 [[nodiscard]] 构造函数 (c++2a) 对于管理资源的类(例如 unique_ptr)非常有用,而函数的 nodiscard 对 make_unique 很有用,但我想不出一个例子类型的 nodiscard 很有用,我对使用它的情况感兴趣。
【问题讨论】:
-
可能是错误类型?这样,任何返回错误类型的函数都不需要标记,而且你不能忘记标记返回该类型的函数。
标签: c++ attributes c++17 nodiscard