为什么C++标准库容器函数 empty() 标记为 [[nodiscard]]?
Why is the C++ standard library Container function empty() marked as [[nodiscard]]?
似乎empty()
是唯一被标记为nodiscard
的函数。
其他类似的功能,如size()
没有。
为什么?
首先,我希望将来会有更多的功能被标记为[[nodiscard]]
。
但是,empty
传统上是新用户的困惑点。他们认为这是一个动词,它将删除容器的所有元素(此处的正确调用是clear
(。
因此,将empty
标记为[[nodiscard]]
会捕获人们称之为它的所有位置,期望它对容器执行某些操作(而不仅仅是返回size() == 0
(
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 为"adjacent"变量赋值时出现问题
- C++为构建时间获取QDateTime的可靠方法
- 努力将整数转换为链表。不知道我在这里做错了什么
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 为char数组调整zlib-zpipe
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 助记符和指向成员语法的指针
- 在C++中将字符串转换为双精度,而无需科学记数法
- 为什么C++标准库容器函数 empty() 标记为 [[nodiscard]]?
- 将大双精度转换为科学记数法以用作字符串?
- 为什么新运算符没有声明为 [[nodiscard]]?
- 在科学记数法中将双精度转换为字符串的速度比在 c++ 中将 sprintf 转换得更快
- 如何将十进制科学记数法float/double转换为普通字符串
- 将double/float类型转换为string类型,保留科学记数法和精度
- 如何在使用字符串流时停止双精度转换为科学记数法