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 |
-
|
| 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.
|
| 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 |
|