From Jason Turner

[future.syn]

Diff to HTML by rtfpessoa

tmp/tmpefuv4br3/{from.md → to.md} RENAMED
@@ -37,13 +37,10 @@ namespace std {
37
  template<> class promise<void>;
38
 
39
  template<class R>
40
  void swap(promise<R>& x, promise<R>& y) noexcept;
41
 
42
- template<class R, class Alloc>
43
- struct uses_allocator<promise<R>, Alloc>;
44
-
45
  // [futures.unique.future], class template future
46
  template<class R> class future;
47
  template<class R> class future<R&>;
48
  template<> class future<void>;
49
 
@@ -60,14 +57,14 @@ namespace std {
60
  template<class R, class... ArgTypes>
61
  void swap(packaged_task<R(ArgTypes...)>&, packaged_task<R(ArgTypes...)>&) noexcept;
62
 
63
  // [futures.async], function template async
64
  template<class F, class... Args>
65
- [[nodiscard]] future<invoke_result_t<decay_t<F>, decay_t<Args>...>>
66
  async(F&& f, Args&&... args);
67
  template<class F, class... Args>
68
- [[nodiscard]] future<invoke_result_t<decay_t<F>, decay_t<Args>...>>
69
  async(launch policy, F&& f, Args&&... args);
70
  }
71
  ```
72
 
73
  The `enum` type `launch` is a bitmask type [[bitmask.types]] with
 
37
  template<> class promise<void>;
38
 
39
  template<class R>
40
  void swap(promise<R>& x, promise<R>& y) noexcept;
41
 
 
 
 
42
  // [futures.unique.future], class template future
43
  template<class R> class future;
44
  template<class R> class future<R&>;
45
  template<> class future<void>;
46
 
 
57
  template<class R, class... ArgTypes>
58
  void swap(packaged_task<R(ArgTypes...)>&, packaged_task<R(ArgTypes...)>&) noexcept;
59
 
60
  // [futures.async], function template async
61
  template<class F, class... Args>
62
+ future<invoke_result_t<decay_t<F>, decay_t<Args>...>>
63
  async(F&& f, Args&&... args);
64
  template<class F, class... Args>
65
+ future<invoke_result_t<decay_t<F>, decay_t<Args>...>>
66
  async(launch policy, F&& f, Args&&... args);
67
  }
68
  ```
69
 
70
  The `enum` type `launch` is a bitmask type [[bitmask.types]] with