gpt4 book ai didi

c++ - 为什么 unique_ptr::release 没有用 [[nodiscard]] 定义?

转载 作者:行者123 更新时间:2023-12-01 12:29:09 26 4
gpt4 key购买 nike

C++17 已添加 [[nodiscard]] .

C++20 添加了 [[nodiscard]] 的使用在 empty方法,例如 vector::empty() -- 可能是为了避免用户混淆 clear 方法(即意外调用 empty() 来清除 vector )。

为什么C++20没有利用这个机会添加[[nodiscard]]unique_ptr::release ?

是否有一个合理的情况可以调用 unique_ptr::release 不取返回值?

以同样的方式避免用户混淆(如果这是将 [[nodiscard]] 添加到 empty 方法的原因) - 名称 release总是很困惑,听起来,嗯......这里会发布一些东西。

添加 [[nodiscard]]可以在某种程度上解决这个名称问题。

最佳答案

这在添加 [[nodiscard]] 的论文中得到了解决。到许多功能。来自 P0600R1这是关于添加 [[nodiscard]] 的注释至unique_ptr::release()

Titus: at Google 3.5% of calls would fail, but analysis showed that it was correct (but weird ownership semantics). See reflector email.

关于c++ - 为什么 unique_ptr::release 没有用 [[nodiscard]] 定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60535399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com