为什么C++标准库容器函数 empty() 标记为 [[nodiscard]]?

Why is the C++ standard library Container function empty() marked as [[nodiscard]]?

本文关键字:记为 nodiscard empty 标准 C++ 函数 为什么      更新时间:2023-10-16

似乎empty()是唯一被标记为nodiscard的函数。

其他类似的功能,如size()没有。

为什么?

首先,我希望将来会有更多的功能被标记为[[nodiscard]]

但是,empty传统上是新用户的困惑点。他们认为这是一个动词,它将删除容器的所有元素(此处的正确调用是clear(。

因此,将empty标记为[[nodiscard]]会捕获人们称之为它的所有位置,期望它对容器执行某些操作(而不仅仅是返回size() == 0(