Section: 99 [futures.atomic_future] Status: NAD Editorial Submitter: INCITS Opened: 2010-08-25 Last modified: 2016-02-10
Priority: Not Prioritized
View all other issues in [futures.atomic_future].
View all issues with NAD Editorial status.
Both future and shared_future specify that calling most member functions on an object for which valid() == false produces undefined behavior. There is no such statement for atomic_future.
[ Resolution proposed by ballot comment: ]
Add a new paragraph after 99 [futures.atomic_future]/2 with the same words as 33.6.8 [futures.shared_future]/3.
[ 2010-11-02 Daniel translates proposed changes into specific deltas and comments: ]
While applying the wording, I notice that 33.6.8 [futures.shared_future]/3 does speak of the move-assignment operator, and not of the copy-assignment operator. atomic_future obviously needs this to be true for the copy-assignment operator, but I strongly assume that shared_future needs to mention both special member assignment operators in this paragraph. To keep this consistent, the following P/R also provides wording to fix the corresponding location for shared_future.
3 The effect of calling any member function other than the destructor, the move-assignment operator, or valid() on a shared_future object for which valid() == false is undefined.