future::get
should explicitly state that the shared state is releasedSection: 32.10.7 [futures.unique.future] Status: C++17 Submitter: Agustín K-ballo Bergé Opened: 2015-09-03 Last modified: 2021-06-06
Priority: 3
View all other issues in [futures.unique.future].
View all issues with C++17 status.
Discussion:
The standard is usually very explicit on when a shared state is released, except for future::get
for which it only states valid() == false
as a postcondition.
[2016-08 - Chicago]
Thurs AM: Moved to Tentatively Ready
Proposed resolution:
This wording is relative to N4527.
Modify [futures.unique_future] as indicated:
R future::get(); R& future<R&>::get(); void future<void>::get();-14- Note: as described above, the template and its two required specializations differ only in the return type and return value of the member function
-15- Effects:get
.
wait()
s until the shared state is ready, then retrieves the value stored in the shared state.;releases any shared state (32.10.5 [futures.state]).
[…]