|
122 | 122 | requires requires { typename pair<common_reference_t<TQual<T1>, UQual<U1>>, |
123 | 123 | common_reference_t<TQual<T2>, UQual<U2>>>; } |
124 | 124 | struct basic_common_reference<pair<T1, T2>, pair<U1, U2>, TQual, UQual> { |
125 | | - using type = pair<common_reference_t<TQual<T1>, UQual<U1>>, |
| 125 | + using @\libmember{type}{basic_common_reference}@ = pair<common_reference_t<TQual<T1>, UQual<U1>>, |
126 | 126 | common_reference_t<TQual<T2>, UQual<U2>>>; |
127 | 127 | }; |
128 | 128 |
|
129 | 129 | template<class T1, class T2, class U1, class U2> |
130 | 130 | requires requires { typename pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; } |
131 | 131 | struct common_type<pair<T1, T2>, pair<U1, U2>> { |
132 | | - using type = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; |
| 132 | + using @\libmember{type}{common_type}@ = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; |
133 | 133 | }; |
134 | 134 |
|
135 | 135 | // \ref{pairs.spec}, pair specialized algorithms |
|
725 | 725 | namespace std { |
726 | 726 | template<class T1, class T2> |
727 | 727 | struct pair { |
728 | | - using first_type = T1; |
729 | | - using second_type = T2; |
| 728 | + using @\libmember{first_type}{pair}@ = T1; |
| 729 | + using @\libmember{second_type}{pair}@ = T2; |
730 | 730 |
|
731 | 731 | T1 first; |
732 | 732 | T2 second; |
|
1372 | 1372 | \begin{itemdecl} |
1373 | 1373 | template<size_t I, class T1, class T2> |
1374 | 1374 | struct tuple_element<I, pair<T1, T2>> { |
1375 | | - using type = @\seebelow@ ; |
| 1375 | + using @\libmember{type}{tuple_element}@ = @\seebelow@ ; |
1376 | 1376 | }; |
1377 | 1377 | \end{itemdecl} |
1378 | 1378 | \begin{itemdescr} |
|
2758 | 2758 | \begin{itemdecl} |
2759 | 2759 | template<size_t I, class... Types> |
2760 | 2760 | struct tuple_element<I, tuple<Types...>> { |
2761 | | - using type = TI; |
| 2761 | + using @\libmember{type}{tuple_element}@ = TI; |
2762 | 2762 | }; |
2763 | 2763 | \end{itemdecl} |
2764 | 2764 |
|
|
3035 | 3035 | template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple, |
3036 | 3036 | template<class> class TQual, template<class> class UQual> |
3037 | 3037 | struct basic_common_reference<TTuple, UTuple, TQual, UQual> { |
3038 | | - using type = @\seebelow@; |
| 3038 | + using @\libmember{type}{basic_common_reference}@ = @\seebelow@; |
3039 | 3039 | }; |
3040 | 3040 | \end{itemdecl} |
3041 | 3041 |
|
|
3064 | 3064 | \begin{itemdecl} |
3065 | 3065 | template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple> |
3066 | 3066 | struct common_type<TTuple, UTuple> { |
3067 | | - using type = @\seebelow@; |
| 3067 | + using @\libmember{type}{common_type}@ = @\seebelow@; |
3068 | 3068 | }; |
3069 | 3069 | \end{itemdecl} |
3070 | 3070 |
|
|
3256 | 3256 | template<class T> |
3257 | 3257 | class optional { |
3258 | 3258 | public: |
3259 | | - using value_type = T; |
3260 | | - using iterator = @\impdefnc@; // see~\ref{optional.iterators} |
3261 | | - using const_iterator = @\impdefnc@; // see~\ref{optional.iterators} |
| 3259 | + using @\libmember{value_type}{optional}@ = T; |
| 3260 | + using @\libmember{iterator}{optional}@ = @\impdefnc@; // see~\ref{optional.iterators} |
| 3261 | + using @\libmember{const_iterator}{optional}@ = @\impdefnc@; // see~\ref{optional.iterators} |
3262 | 3262 |
|
3263 | 3263 | // \ref{optional.ctor}, constructors |
3264 | 3264 | constexpr optional() noexcept; |
|
4023 | 4023 | \indexlibrarymember{iterator}{optional}% |
4024 | 4024 | \indexlibrarymember{const_iterator}{optional}% |
4025 | 4025 | \begin{itemdecl} |
4026 | | -using iterator = @\impdef@; |
4027 | | -using const_iterator = @\impdef@; |
| 4026 | +using @\libmember{iterator}{optional}@ = @\impdef@; |
| 4027 | +using @\libmember{const_iterator}{optional}@ = @\impdef@; |
4028 | 4028 | \end{itemdecl} |
4029 | 4029 |
|
4030 | 4030 | \begin{itemdescr} |
|
11074 | 11074 | template<class T> class reference_wrapper { |
11075 | 11075 | public: |
11076 | 11076 | // types |
11077 | | - using type = T; |
| 11077 | + using @\libmember{type}{reference_wrapper}@ = T; |
11078 | 11078 |
|
11079 | 11079 | // \ref{refwrap.const}, constructors |
11080 | 11080 | template<class U> |
@@ -11394,14 +11394,14 @@ |
11394 | 11394 | requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> && |
11395 | 11395 | !@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>) |
11396 | 11396 | struct basic_common_reference<R, T, RQual, TQual> { |
11397 | | - using type = common_reference_t<typename R::type&, TQual<T>>; |
| 11397 | + using @\libmember{type}{basic_common_reference}@ = common_reference_t<typename R::type&, TQual<T>>; |
11398 | 11398 | }; |
11399 | 11399 |
|
11400 | 11400 | template<class T, class R, template<class> class TQual, template<class> class RQual> |
11401 | 11401 | requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> && |
11402 | 11402 | !@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>) |
11403 | 11403 | struct basic_common_reference<T, R, TQual, RQual> { |
11404 | | - using type = common_reference_t<typename R::type&, TQual<T>>; |
| 11404 | + using @\libmember{type}{basic_common_reference}@ = common_reference_t<typename R::type&, TQual<T>>; |
11405 | 11405 | }; |
11406 | 11406 | } |
11407 | 11407 | \end{codeblock} |
|
11440 | 11440 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11441 | 11441 | -> decltype(std::forward<T>(t) + std::forward<U>(u)); |
11442 | 11442 |
|
11443 | | - using is_transparent = @\unspec@; |
| 11443 | + using @\libmember{is_transparent}{plus<>}@ = @\unspec@; |
11444 | 11444 | }; |
11445 | 11445 | \end{itemdecl} |
11446 | 11446 |
|
|
11482 | 11482 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11483 | 11483 | -> decltype(std::forward<T>(t) - std::forward<U>(u)); |
11484 | 11484 |
|
11485 | | - using is_transparent = @\unspec@; |
| 11485 | + using @\libmember{is_transparent}{minus<>}@ = @\unspec@; |
11486 | 11486 | }; |
11487 | 11487 | \end{itemdecl} |
11488 | 11488 |
|
|
11524 | 11524 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11525 | 11525 | -> decltype(std::forward<T>(t) * std::forward<U>(u)); |
11526 | 11526 |
|
11527 | | - using is_transparent = @\unspec@; |
| 11527 | + using @\libmember{is_transparent}{multiplies<>}@ = @\unspec@; |
11528 | 11528 | }; |
11529 | 11529 | \end{itemdecl} |
11530 | 11530 |
|
|
11566 | 11566 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11567 | 11567 | -> decltype(std::forward<T>(t) / std::forward<U>(u)); |
11568 | 11568 |
|
11569 | | - using is_transparent = @\unspec@; |
| 11569 | + using @\libmember{is_transparent}{divides<>}@ = @\unspec@; |
11570 | 11570 | }; |
11571 | 11571 | \end{itemdecl} |
11572 | 11572 |
|
|
11608 | 11608 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11609 | 11609 | -> decltype(std::forward<T>(t) % std::forward<U>(u)); |
11610 | 11610 |
|
11611 | | - using is_transparent = @\unspec@; |
| 11611 | + using @\libmember{is_transparent}{modulus<>}@ = @\unspec@; |
11612 | 11612 | }; |
11613 | 11613 | \end{itemdecl} |
11614 | 11614 |
|
|
11650 | 11650 | template<class T> constexpr auto operator()(T&& t) const |
11651 | 11651 | -> decltype(-std::forward<T>(t)); |
11652 | 11652 |
|
11653 | | - using is_transparent = @\unspec@; |
| 11653 | + using @\libmember{is_transparent}{negate<>}@ = @\unspec@; |
11654 | 11654 | }; |
11655 | 11655 | \end{itemdecl} |
11656 | 11656 |
|
|
11718 | 11718 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11719 | 11719 | -> decltype(std::forward<T>(t) == std::forward<U>(u)); |
11720 | 11720 |
|
11721 | | - using is_transparent = @\unspec@; |
| 11721 | + using @\libmember{is_transparent}{equal_to<>}@ = @\unspec@; |
11722 | 11722 | }; |
11723 | 11723 | \end{itemdecl} |
11724 | 11724 |
|
|
11760 | 11760 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11761 | 11761 | -> decltype(std::forward<T>(t) != std::forward<U>(u)); |
11762 | 11762 |
|
11763 | | - using is_transparent = @\unspec@; |
| 11763 | + using @\libmember{is_transparent}{not_equal_to<>}@ = @\unspec@; |
11764 | 11764 | }; |
11765 | 11765 | \end{itemdecl} |
11766 | 11766 |
|
|
11802 | 11802 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11803 | 11803 | -> decltype(std::forward<T>(t) > std::forward<U>(u)); |
11804 | 11804 |
|
11805 | | - using is_transparent = @\unspec@; |
| 11805 | + using @\libmember{is_transparent}{greater<>}@ = @\unspec@; |
11806 | 11806 | }; |
11807 | 11807 | \end{itemdecl} |
11808 | 11808 |
|
|
11844 | 11844 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11845 | 11845 | -> decltype(std::forward<T>(t) < std::forward<U>(u)); |
11846 | 11846 |
|
11847 | | - using is_transparent = @\unspec@; |
| 11847 | + using @\libmember{is_transparent}{less<>}@ = @\unspec@; |
11848 | 11848 | }; |
11849 | 11849 | \end{itemdecl} |
11850 | 11850 |
|
|
11886 | 11886 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11887 | 11887 | -> decltype(std::forward<T>(t) >= std::forward<U>(u)); |
11888 | 11888 |
|
11889 | | - using is_transparent = @\unspec@; |
| 11889 | + using @\libmember{is_transparent}{greater_equal<>}@ = @\unspec@; |
11890 | 11890 | }; |
11891 | 11891 | \end{itemdecl} |
11892 | 11892 |
|
|
11928 | 11928 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
11929 | 11929 | -> decltype(std::forward<T>(t) <= std::forward<U>(u)); |
11930 | 11930 |
|
11931 | | - using is_transparent = @\unspec@; |
| 11931 | + using @\libmember{is_transparent}{less_equal<>}@ = @\unspec@; |
11932 | 11932 | }; |
11933 | 11933 | \end{itemdecl} |
11934 | 11934 |
|
|
11953 | 11953 | template<class T, class U> |
11954 | 11954 | constexpr auto operator()(T&& t, U&& u) const; |
11955 | 11955 |
|
11956 | | - using is_transparent = @\unspec@; |
| 11956 | + using @\libmember{is_transparent}{compare_three_way}@ = @\unspec@; |
11957 | 11957 | }; |
11958 | 11958 | } |
11959 | 11959 | \end{codeblock} |
|
12002 | 12002 | template<class T, class U> |
12003 | 12003 | constexpr bool operator()(T&& t, U&& u) const; |
12004 | 12004 |
|
12005 | | - using is_transparent = @\unspecnc@; |
| 12005 | + using @\libmember{is_transparent}{equal_to}@ = @\unspecnc@; |
12006 | 12006 | }; |
12007 | 12007 | \end{codeblock} |
12008 | 12008 |
|
|
12046 | 12046 | template<class T, class U> |
12047 | 12047 | constexpr bool operator()(T&& t, U&& u) const; |
12048 | 12048 |
|
12049 | | - using is_transparent = @\unspecnc@; |
| 12049 | + using @\libmember{is_transparent}{not_equal_to}@ = @\unspecnc@; |
12050 | 12050 | }; |
12051 | 12051 | \end{codeblock} |
12052 | 12052 |
|
|
12074 | 12074 | template<class T, class U> |
12075 | 12075 | constexpr bool operator()(T&& t, U&& u) const; |
12076 | 12076 |
|
12077 | | - using is_transparent = @\unspecnc@; |
| 12077 | + using @\libmember{is_transparent}{greater}@ = @\unspecnc@; |
12078 | 12078 | }; |
12079 | 12079 | \end{codeblock} |
12080 | 12080 |
|
|
12102 | 12102 | template<class T, class U> |
12103 | 12103 | constexpr bool operator()(T&& t, U&& u) const; |
12104 | 12104 |
|
12105 | | - using is_transparent = @\unspecnc@; |
| 12105 | + using @\libmember{is_transparent}{less}@ = @\unspecnc@; |
12106 | 12106 | }; |
12107 | 12107 | \end{codeblock} |
12108 | 12108 |
|
|
12153 | 12153 | template<class T, class U> |
12154 | 12154 | constexpr bool operator()(T&& t, U&& u) const; |
12155 | 12155 |
|
12156 | | - using is_transparent = @\unspecnc@; |
| 12156 | + using @\libmember{is_transparent}{greater_equal}@ = @\unspecnc@; |
12157 | 12157 | }; |
12158 | 12158 | \end{codeblock} |
12159 | 12159 |
|
|
12181 | 12181 | template<class T, class U> |
12182 | 12182 | constexpr bool operator()(T&& t, U&& u) const; |
12183 | 12183 |
|
12184 | | - using is_transparent = @\unspecnc@; |
| 12184 | + using @\libmember{is_transparent}{less_equal}@ = @\unspecnc@; |
12185 | 12185 | }; |
12186 | 12186 | \end{itemdecl} |
12187 | 12187 |
|
|
12237 | 12237 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
12238 | 12238 | -> decltype(std::forward<T>(t) && std::forward<U>(u)); |
12239 | 12239 |
|
12240 | | - using is_transparent = @\unspec@; |
| 12240 | + using @\libmember{is_transparent}{logical_and<>}@ = @\unspec@; |
12241 | 12241 | }; |
12242 | 12242 | \end{itemdecl} |
12243 | 12243 |
|
|
12279 | 12279 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
12280 | 12280 | -> decltype(std::forward<T>(t) || std::forward<U>(u)); |
12281 | 12281 |
|
12282 | | - using is_transparent = @\unspec@; |
| 12282 | + using @\libmember{is_transparent}{logical_or<>}@ = @\unspec@; |
12283 | 12283 | }; |
12284 | 12284 | \end{itemdecl} |
12285 | 12285 |
|
|
12321 | 12321 | template<class T> constexpr auto operator()(T&& t) const |
12322 | 12322 | -> decltype(!std::forward<T>(t)); |
12323 | 12323 |
|
12324 | | - using is_transparent = @\unspec@; |
| 12324 | + using @\libmember{is_transparent}{logical_not<>}@ = @\unspec@; |
12325 | 12325 | }; |
12326 | 12326 | \end{itemdecl} |
12327 | 12327 |
|
|
12372 | 12372 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
12373 | 12373 | -> decltype(std::forward<T>(t) & std::forward<U>(u)); |
12374 | 12374 |
|
12375 | | - using is_transparent = @\unspec@; |
| 12375 | + using @\libmember{is_transparent}{bit_and<>}@ = @\unspec@; |
12376 | 12376 | }; |
12377 | 12377 | \end{itemdecl} |
12378 | 12378 |
|
|
12414 | 12414 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
12415 | 12415 | -> decltype(std::forward<T>(t) | std::forward<U>(u)); |
12416 | 12416 |
|
12417 | | - using is_transparent = @\unspec@; |
| 12417 | + using @\libmember{is_transparent}{bit_or<>}@ = @\unspec@; |
12418 | 12418 | }; |
12419 | 12419 | \end{itemdecl} |
12420 | 12420 |
|
|
12456 | 12456 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const |
12457 | 12457 | -> decltype(std::forward<T>(t) ^ std::forward<U>(u)); |
12458 | 12458 |
|
12459 | | - using is_transparent = @\unspec@; |
| 12459 | + using @\libmember{is_transparent}{bit_xor<>}@ = @\unspec@; |
12460 | 12460 | }; |
12461 | 12461 | \end{itemdecl} |
12462 | 12462 |
|
|
12497 | 12497 | template<class T> constexpr auto operator()(T&& t) const |
12498 | 12498 | -> decltype(~std::forward<T>(t)); |
12499 | 12499 |
|
12500 | | - using is_transparent = @\unspec@; |
| 12500 | + using @\libmember{is_transparent}{bit_not<>}@ = @\unspec@; |
12501 | 12501 | }; |
12502 | 12502 | \end{itemdecl} |
12503 | 12503 |
|
|
12522 | 12522 | template<class T> |
12523 | 12523 | constexpr T&& operator()(T&& t) const noexcept; |
12524 | 12524 |
|
12525 | | - using is_transparent = @\unspec@; |
| 12525 | + using @\libmember{is_transparent}{identity}@ = @\unspec@; |
12526 | 12526 | }; |
12527 | 12527 |
|
12528 | 12528 | template<class T> |
|
13076 | 13076 | template<class R, class... ArgTypes> |
13077 | 13077 | class function<R(ArgTypes...)> { |
13078 | 13078 | public: |
13079 | | - using result_type = R; |
| 13079 | + using @\libmember{result_type}{function}@ = R; |
13080 | 13080 |
|
13081 | 13081 | // \ref{func.wrap.func.con}, construct/copy/destroy |
13082 | 13082 | function() noexcept; |
|
13547 | 13547 | template<class R, class... ArgTypes> |
13548 | 13548 | class move_only_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> { |
13549 | 13549 | public: |
13550 | | - using result_type = R; |
| 13550 | + using @\libmember{result_type}{move_only_function}@ = R; |
13551 | 13551 |
|
13552 | 13552 | // \ref{func.wrap.move.ctor}, constructors, assignment, and destructor |
13553 | 13553 | move_only_function() noexcept; |
|
13940 | 13940 | template<class R, class... ArgTypes> |
13941 | 13941 | class copyable_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> { |
13942 | 13942 | public: |
13943 | | - using result_type = R; |
| 13943 | + using @\libmember{result_type}{copyable_function}@ = R; |
13944 | 13944 |
|
13945 | 13945 | // \ref{func.wrap.copy.ctor}, constructors, assignments, and destructors |
13946 | 13946 | copyable_function() noexcept; |
|
0 commit comments