为什么 STL Container 函数 empty() 标记为 [[nodiscard]]?
Why is the STL Container function empty() marked as [[nodiscard]]?
好像是empty()
is the only function that has been marked as nodiscard
.
其他类似功能如size()
还没有。
为什么会这样?
首先,希望以后能标注更多的功能[[nodiscard]]
但是,empty
传统上是新用户的困惑点。他们认为这是一个动词,它会删除容器中的所有元素(这里的正确调用是clear
)。
因此,将 empty
标记为 [[nodiscard]]
会捕获所有人们称它为期望它对容器做某事的地方(而不是仅仅返回 size() == 0
)
好像是empty()
is the only function that has been marked as nodiscard
.
其他类似功能如size()
还没有。
为什么会这样?
首先,希望以后能标注更多的功能[[nodiscard]]
但是,empty
传统上是新用户的困惑点。他们认为这是一个动词,它会删除容器中的所有元素(这里的正确调用是clear
)。
因此,将 empty
标记为 [[nodiscard]]
会捕获所有人们称它为期望它对容器做某事的地方(而不是仅仅返回 size() == 0
)