From Jason Turner

[utility.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmptcth5yyh/{from.md → to.md} +26 -2
tmp/tmptcth5yyh/{from.md → to.md} RENAMED
@@ -23,11 +23,11 @@ namespace std {
23
  template<class T>
24
  constexpr T&& forward(remove_reference_t<T>& t) noexcept;
25
  template<class T>
26
  constexpr T&& forward(remove_reference_t<T>&& t) noexcept;
27
  template<class T, class U>
28
- [[nodiscard]] constexpr auto forward_like(U&& x) noexcept -> see below;
29
  template<class T>
30
  constexpr remove_reference_t<T>&& move(T&&) noexcept;
31
  template<class T>
32
  constexpr conditional_t<
33
  !is_nothrow_move_constructible_v<T> && is_copy_constructible_v<T>, const T&, T&&>
@@ -63,12 +63,13 @@ namespace std {
63
 
64
  // [utility.underlying], to_underlying
65
  template<class T>
66
  constexpr underlying_type_t<T> to_underlying(T value) noexcept;
67
 
68
- // [utility.unreachable], unreachable
69
  [[noreturn]] void unreachable();
 
70
 
71
  // [intseq], compile-time integer sequences%
72
  %
73
  %
74
 
@@ -181,8 +182,31 @@ namespace std {
181
  template<size_t I>
182
  struct in_place_index_t {
183
  explicit in_place_index_t() = default;
184
  };
185
  template<size_t I> constexpr in_place_index_t<I> in_place_index{};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  }
187
  ```
188
 
 
23
  template<class T>
24
  constexpr T&& forward(remove_reference_t<T>& t) noexcept;
25
  template<class T>
26
  constexpr T&& forward(remove_reference_t<T>&& t) noexcept;
27
  template<class T, class U>
28
+ constexpr auto forward_like(U&& x) noexcept -> see below;
29
  template<class T>
30
  constexpr remove_reference_t<T>&& move(T&&) noexcept;
31
  template<class T>
32
  constexpr conditional_t<
33
  !is_nothrow_move_constructible_v<T> && is_copy_constructible_v<T>, const T&, T&&>
 
63
 
64
  // [utility.underlying], to_underlying
65
  template<class T>
66
  constexpr underlying_type_t<T> to_underlying(T value) noexcept;
67
 
68
+ // [utility.undefined], undefined behavior
69
  [[noreturn]] void unreachable();
70
+ void observable_checkpoint() noexcept;
71
 
72
  // [intseq], compile-time integer sequences%
73
  %
74
  %
75
 
 
182
  template<size_t I>
183
  struct in_place_index_t {
184
  explicit in_place_index_t() = default;
185
  };
186
  template<size_t I> constexpr in_place_index_t<I> in_place_index{};
187
+
188
+ // nontype argument tag%
189
+ %
190
+
191
+ template<auto V>
192
+ struct nontype_t {
193
+ explicit nontype_t() = default;
194
+ };
195
+ template<auto V> constexpr nontype_t<V> nontype{};
196
+
197
+ // [variant.monostate], class monostate%
198
+
199
+ struct monostate;
200
+
201
+ // [variant.monostate.relops], monostate relational operators%
202
+ {monostate{monostate}
203
+ constexpr bool operator==(monostate, monostate) noexcept;
204
+ constexpr strong_ordering operator<=>(monostate, monostate) noexcept;
205
+
206
+ // [variant.hash], hash support%
207
+ {monostate}
208
+ template<class T> struct hash;
209
+ template<> struct hash<monostate>;
210
  }
211
  ```
212