[expos.only.entity] (original) (raw)
16 Library introduction [library]
16.3 Method of description [description]
16.3.3 Other conventions [conventions]
16.3.3.2 Exposition-only entities, etc. [expos.only.entity]
The declaration of such an entity or typedef-nameis followed by a comment ending in exposition only.
The following are defined for exposition only to aid in the specification of the library:namespace std { template<class T> requires convertible_to<T, decay_t<T>> constexpr decay_t<T> decay-copy(T&& v) noexcept(is_nothrow_convertible_v<T, decay_t<T>>) { return std::forward<T>(v); } constexpr auto synth-three-way = []<class T, class U>(const T& t, const U& u) requires requires { { t < u } -> boolean-testable;{ u < t } -> boolean-testable;} { if constexpr (three_way_comparable_with<T, U>) { return t <=> u;} else { if (t < u) return weak_ordering::less;if (u < t) return weak_ordering::greater;return weak_ordering::equivalent;} };template<class T, class U=T> using synth-three-way-result = decltype(synth-three-way(declval<T&>(), declval<U&>()));}
An object dst is said to be decay-copied froma subexpression srcif the type of dst isdecay_t<decltype((src))>