|
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