nodiscard

Why is unique_ptr::release not defined with [[nodiscard]]?

你。 提交于 2020-05-11 05:37:10
问题 C++17 added [[nodiscard]]. C++20 added the use of [[nodiscard]] on empty methods, e.g. vector::empty() -- maybe, to avoid user confusion with the method clear (i.e. calling empty() accidentally to clear the vector). Why didn't C++20 use this opportunity to add [[nodiscard]] to unique_ptr::release ? Is there a valid reasonable scenario in which one would call unique_ptr::release without taking the returned value? In the same manner of avoiding user confusion (if this was the reason for adding