From Jason Turner

[futures.unique_future]

Diff to HTML by rtfpessoa

tmp/tmp1ysbrj_i/{from.md → to.md} RENAMED
@@ -55,11 +55,11 @@ out in its description, below.
55
  ``` cpp
56
  future() noexcept;
57
  ```
58
 
59
  *Effects:* constructs an *empty* `future` object that does not refer to
60
- an shared state.
61
 
62
  `valid() == false`.
63
 
64
  ``` cpp
65
  future(future&& rhs) noexcept;
@@ -119,13 +119,12 @@ member function `get`.
119
  *Effects:* `wait()`s until the shared state is ready, then retrieves the
120
  value stored in the shared state.
121
 
122
  *Returns:*
123
 
124
- - `future::get()` returns the value stored in the object’s shared state.
125
- If the type of the value is `MoveAssignable` the returned value is
126
- moved, otherwise it is copied.
127
  - `future<R&>::get()` returns the reference stored as value in the
128
  object’s shared state.
129
  - `future<void>::get()` returns nothing.
130
 
131
  *Throws:* the stored exception, if an exception was stored in the shared
@@ -162,10 +161,12 @@ specified by `rel_time` has expired.
162
  - `future_status::ready` if the shared state is ready.
163
  - `future_status::timeout` if the function is returning because the
164
  relative timeout ([[thread.req.timing]]) specified by `rel_time` has
165
  expired.
166
 
 
 
167
  ``` cpp
168
  template <class Clock, class Duration>
169
  future_status wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;
170
  ```
171
 
@@ -181,5 +182,7 @@ specified by `abs_time` has expired.
181
  - `future_status::ready` if the shared state is ready.
182
  - `future_status::timeout` if the function is returning because the
183
  absolute timeout ([[thread.req.timing]]) specified by `abs_time` has
184
  expired.
185
 
 
 
 
55
  ``` cpp
56
  future() noexcept;
57
  ```
58
 
59
  *Effects:* constructs an *empty* `future` object that does not refer to
60
+ a shared state.
61
 
62
  `valid() == false`.
63
 
64
  ``` cpp
65
  future(future&& rhs) noexcept;
 
119
  *Effects:* `wait()`s until the shared state is ready, then retrieves the
120
  value stored in the shared state.
121
 
122
  *Returns:*
123
 
124
+ - `future::get()` returns the value `v` stored in the object’s shared
125
+ state as `std::move(v)`.
 
126
  - `future<R&>::get()` returns the reference stored as value in the
127
  object’s shared state.
128
  - `future<void>::get()` returns nothing.
129
 
130
  *Throws:* the stored exception, if an exception was stored in the shared
 
161
  - `future_status::ready` if the shared state is ready.
162
  - `future_status::timeout` if the function is returning because the
163
  relative timeout ([[thread.req.timing]]) specified by `rel_time` has
164
  expired.
165
 
166
+ *Throws:* timeout-related exceptions ([[thread.req.timing]]).
167
+
168
  ``` cpp
169
  template <class Clock, class Duration>
170
  future_status wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;
171
  ```
172
 
 
182
  - `future_status::ready` if the shared state is ready.
183
  - `future_status::timeout` if the function is returning because the
184
  absolute timeout ([[thread.req.timing]]) specified by `abs_time` has
185
  expired.
186
 
187
+ *Throws:* timeout-related exceptions ([[thread.req.timing]]).
188
+