为什么STL容器函数empty()被标记为[[nodiscard]]?

Fou*_*met 2 c++ c++20

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

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

这是为什么 ?

Mar*_*low 6

首先,我希望将标记更多功能 [[nodiscard]]

然而,empty对于新用户来说,传统上是一个困惑点。他们认为它是一个动词,它将删除容器的所有元素(这里正确的调用是clear)。

所以标记empty[[nodiscard]]捕获人们调用它的所有地方,期望它对容器做一些事情(而不是仅仅返回size() == 0