|
123 | 123 | requires requires { typename pair<common_reference_t<TQual<T1>, UQual<U1>>,
|
124 | 124 | common_reference_t<TQual<T2>, UQual<U2>>>; }
|
125 | 125 | struct basic_common_reference<pair<T1, T2>, pair<U1, U2>, TQual, UQual> {
|
126 |
| - using type = pair<common_reference_t<TQual<T1>, UQual<U1>>, |
| 126 | + using @\libmember{type}{basic_common_reference}@ = pair<common_reference_t<TQual<T1>, UQual<U1>>, |
127 | 127 | common_reference_t<TQual<T2>, UQual<U2>>>;
|
128 | 128 | };
|
129 | 129 |
|
130 | 130 | template<class T1, class T2, class U1, class U2>
|
131 | 131 | requires requires { typename pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; }
|
132 | 132 | struct common_type<pair<T1, T2>, pair<U1, U2>> {
|
133 |
| - using type = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; |
| 133 | + using @\libmember{type}{common_type}@ = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; |
134 | 134 | };
|
135 | 135 |
|
136 | 136 | // \ref{pairs.spec}, pair specialized algorithms
|
|
752 | 752 | namespace std {
|
753 | 753 | template<class T1, class T2>
|
754 | 754 | struct pair {
|
755 |
| - using first_type = T1; |
756 |
| - using second_type = T2; |
| 755 | + using @\libmember{first_type}{pair}@ = T1; |
| 756 | + using @\libmember{second_type}{pair}@ = T2; |
757 | 757 |
|
758 | 758 | T1 first;
|
759 | 759 | T2 second;
|
|
1399 | 1399 | \begin{itemdecl}
|
1400 | 1400 | template<size_t I, class T1, class T2>
|
1401 | 1401 | struct tuple_element<I, pair<T1, T2>> {
|
1402 |
| - using type = @\seebelow@ ; |
| 1402 | + using @\libmember{type}{tuple_element}@ = @\seebelow@ ; |
1403 | 1403 | };
|
1404 | 1404 | \end{itemdecl}
|
1405 | 1405 | \begin{itemdescr}
|
|
2785 | 2785 | \begin{itemdecl}
|
2786 | 2786 | template<size_t I, class... Types>
|
2787 | 2787 | struct tuple_element<I, tuple<Types...>> {
|
2788 |
| - using type = TI; |
| 2788 | + using @\libmember{type}{tuple_element}@ = TI; |
2789 | 2789 | };
|
2790 | 2790 | \end{itemdecl}
|
2791 | 2791 |
|
|
3062 | 3062 | template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple,
|
3063 | 3063 | template<class> class TQual, template<class> class UQual>
|
3064 | 3064 | struct basic_common_reference<TTuple, UTuple, TQual, UQual> {
|
3065 |
| - using type = @\seebelow@; |
| 3065 | + using @\libmember{type}{basic_common_reference}@ = @\seebelow@; |
3066 | 3066 | };
|
3067 | 3067 | \end{itemdecl}
|
3068 | 3068 |
|
|
3091 | 3091 | \begin{itemdecl}
|
3092 | 3092 | template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple>
|
3093 | 3093 | struct common_type<TTuple, UTuple> {
|
3094 |
| - using type = @\seebelow@; |
| 3094 | + using @\libmember{type}{common_type}@ = @\seebelow@; |
3095 | 3095 | };
|
3096 | 3096 | \end{itemdecl}
|
3097 | 3097 |
|
|
3283 | 3283 | template<class T>
|
3284 | 3284 | class optional {
|
3285 | 3285 | public:
|
3286 |
| - using value_type = T; |
3287 |
| - using iterator = @\impdefnc@; // see~\ref{optional.iterators} |
3288 |
| - using const_iterator = @\impdefnc@; // see~\ref{optional.iterators} |
| 3286 | + using @\libmember{value_type}{optional}@ = T; |
| 3287 | + using @\libmember{iterator}{optional}@ = @\impdefnc@; // see~\ref{optional.iterators} |
| 3288 | + using @\libmember{const_iterator}{optional}@ = @\impdefnc@; // see~\ref{optional.iterators} |
3289 | 3289 |
|
3290 | 3290 | // \ref{optional.ctor}, constructors
|
3291 | 3291 | constexpr optional() noexcept;
|
|
4050 | 4050 | \indexlibrarymember{iterator}{optional}%
|
4051 | 4051 | \indexlibrarymember{const_iterator}{optional}%
|
4052 | 4052 | \begin{itemdecl}
|
4053 |
| -using iterator = @\impdef@; |
4054 |
| -using const_iterator = @\impdef@; |
| 4053 | +using @\libmember{iterator}{optional}@ = @\impdef@; |
| 4054 | +using @\libmember{const_iterator}{optional}@ = @\impdef@; |
4055 | 4055 | \end{itemdecl}
|
4056 | 4056 |
|
4057 | 4057 | \begin{itemdescr}
|
|
11107 | 11107 | template<class T> class reference_wrapper {
|
11108 | 11108 | public:
|
11109 | 11109 | // types
|
11110 |
| - using type = T; |
| 11110 | + using @\libmember{type}{reference_wrapper}@ = T; |
11111 | 11111 |
|
11112 | 11112 | // \ref{refwrap.const}, constructors
|
11113 | 11113 | template<class U>
|
@@ -11427,14 +11427,14 @@
|
11427 | 11427 | requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
|
11428 | 11428 | !@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
|
11429 | 11429 | struct basic_common_reference<R, T, RQual, TQual> {
|
11430 |
| - using type = common_reference_t<typename R::type&, TQual<T>>; |
| 11430 | + using @\libmember{type}{basic_common_reference}@ = common_reference_t<typename R::type&, TQual<T>>; |
11431 | 11431 | };
|
11432 | 11432 |
|
11433 | 11433 | template<class T, class R, template<class> class TQual, template<class> class RQual>
|
11434 | 11434 | requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
|
11435 | 11435 | !@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
|
11436 | 11436 | struct basic_common_reference<T, R, TQual, RQual> {
|
11437 |
| - using type = common_reference_t<typename R::type&, TQual<T>>; |
| 11437 | + using @\libmember{type}{basic_common_reference}@ = common_reference_t<typename R::type&, TQual<T>>; |
11438 | 11438 | };
|
11439 | 11439 | }
|
11440 | 11440 | \end{codeblock}
|
|
11473 | 11473 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11474 | 11474 | -> decltype(std::forward<T>(t) + std::forward<U>(u));
|
11475 | 11475 |
|
11476 |
| - using is_transparent = @\unspec@; |
| 11476 | + using @\libmember{is_transparent}{plus<>}@ = @\unspec@; |
11477 | 11477 | };
|
11478 | 11478 | \end{itemdecl}
|
11479 | 11479 |
|
|
11515 | 11515 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11516 | 11516 | -> decltype(std::forward<T>(t) - std::forward<U>(u));
|
11517 | 11517 |
|
11518 |
| - using is_transparent = @\unspec@; |
| 11518 | + using @\libmember{is_transparent}{minus<>}@ = @\unspec@; |
11519 | 11519 | };
|
11520 | 11520 | \end{itemdecl}
|
11521 | 11521 |
|
|
11557 | 11557 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11558 | 11558 | -> decltype(std::forward<T>(t) * std::forward<U>(u));
|
11559 | 11559 |
|
11560 |
| - using is_transparent = @\unspec@; |
| 11560 | + using @\libmember{is_transparent}{multiplies<>}@ = @\unspec@; |
11561 | 11561 | };
|
11562 | 11562 | \end{itemdecl}
|
11563 | 11563 |
|
|
11599 | 11599 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11600 | 11600 | -> decltype(std::forward<T>(t) / std::forward<U>(u));
|
11601 | 11601 |
|
11602 |
| - using is_transparent = @\unspec@; |
| 11602 | + using @\libmember{is_transparent}{divides<>}@ = @\unspec@; |
11603 | 11603 | };
|
11604 | 11604 | \end{itemdecl}
|
11605 | 11605 |
|
|
11641 | 11641 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11642 | 11642 | -> decltype(std::forward<T>(t) % std::forward<U>(u));
|
11643 | 11643 |
|
11644 |
| - using is_transparent = @\unspec@; |
| 11644 | + using @\libmember{is_transparent}{modulus<>}@ = @\unspec@; |
11645 | 11645 | };
|
11646 | 11646 | \end{itemdecl}
|
11647 | 11647 |
|
|
11683 | 11683 | template<class T> constexpr auto operator()(T&& t) const
|
11684 | 11684 | -> decltype(-std::forward<T>(t));
|
11685 | 11685 |
|
11686 |
| - using is_transparent = @\unspec@; |
| 11686 | + using @\libmember{is_transparent}{negate<>}@ = @\unspec@; |
11687 | 11687 | };
|
11688 | 11688 | \end{itemdecl}
|
11689 | 11689 |
|
|
11751 | 11751 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11752 | 11752 | -> decltype(std::forward<T>(t) == std::forward<U>(u));
|
11753 | 11753 |
|
11754 |
| - using is_transparent = @\unspec@; |
| 11754 | + using @\libmember{is_transparent}{equal_to<>}@ = @\unspec@; |
11755 | 11755 | };
|
11756 | 11756 | \end{itemdecl}
|
11757 | 11757 |
|
|
11793 | 11793 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11794 | 11794 | -> decltype(std::forward<T>(t) != std::forward<U>(u));
|
11795 | 11795 |
|
11796 |
| - using is_transparent = @\unspec@; |
| 11796 | + using @\libmember{is_transparent}{not_equal_to<>}@ = @\unspec@; |
11797 | 11797 | };
|
11798 | 11798 | \end{itemdecl}
|
11799 | 11799 |
|
|
11835 | 11835 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11836 | 11836 | -> decltype(std::forward<T>(t) > std::forward<U>(u));
|
11837 | 11837 |
|
11838 |
| - using is_transparent = @\unspec@; |
| 11838 | + using @\libmember{is_transparent}{greater<>}@ = @\unspec@; |
11839 | 11839 | };
|
11840 | 11840 | \end{itemdecl}
|
11841 | 11841 |
|
|
11877 | 11877 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11878 | 11878 | -> decltype(std::forward<T>(t) < std::forward<U>(u));
|
11879 | 11879 |
|
11880 |
| - using is_transparent = @\unspec@; |
| 11880 | + using @\libmember{is_transparent}{less<>}@ = @\unspec@; |
11881 | 11881 | };
|
11882 | 11882 | \end{itemdecl}
|
11883 | 11883 |
|
|
11919 | 11919 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11920 | 11920 | -> decltype(std::forward<T>(t) >= std::forward<U>(u));
|
11921 | 11921 |
|
11922 |
| - using is_transparent = @\unspec@; |
| 11922 | + using @\libmember{is_transparent}{greater_equal<>}@ = @\unspec@; |
11923 | 11923 | };
|
11924 | 11924 | \end{itemdecl}
|
11925 | 11925 |
|
|
11961 | 11961 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
11962 | 11962 | -> decltype(std::forward<T>(t) <= std::forward<U>(u));
|
11963 | 11963 |
|
11964 |
| - using is_transparent = @\unspec@; |
| 11964 | + using @\libmember{is_transparent}{less_equal<>}@ = @\unspec@; |
11965 | 11965 | };
|
11966 | 11966 | \end{itemdecl}
|
11967 | 11967 |
|
|
11986 | 11986 | template<class T, class U>
|
11987 | 11987 | constexpr auto operator()(T&& t, U&& u) const;
|
11988 | 11988 |
|
11989 |
| - using is_transparent = @\unspec@; |
| 11989 | + using @\libmember{is_transparent}{compare_three_way}@ = @\unspec@; |
11990 | 11990 | };
|
11991 | 11991 | }
|
11992 | 11992 | \end{codeblock}
|
|
12035 | 12035 | template<class T, class U>
|
12036 | 12036 | constexpr bool operator()(T&& t, U&& u) const;
|
12037 | 12037 |
|
12038 |
| - using is_transparent = @\unspecnc@; |
| 12038 | + using @\libmember{is_transparent}{equal_to}@ = @\unspecnc@; |
12039 | 12039 | };
|
12040 | 12040 | \end{codeblock}
|
12041 | 12041 |
|
|
12079 | 12079 | template<class T, class U>
|
12080 | 12080 | constexpr bool operator()(T&& t, U&& u) const;
|
12081 | 12081 |
|
12082 |
| - using is_transparent = @\unspecnc@; |
| 12082 | + using @\libmember{is_transparent}{not_equal_to}@ = @\unspecnc@; |
12083 | 12083 | };
|
12084 | 12084 | \end{codeblock}
|
12085 | 12085 |
|
|
12107 | 12107 | template<class T, class U>
|
12108 | 12108 | constexpr bool operator()(T&& t, U&& u) const;
|
12109 | 12109 |
|
12110 |
| - using is_transparent = @\unspecnc@; |
| 12110 | + using @\libmember{is_transparent}{greater}@ = @\unspecnc@; |
12111 | 12111 | };
|
12112 | 12112 | \end{codeblock}
|
12113 | 12113 |
|
|
12135 | 12135 | template<class T, class U>
|
12136 | 12136 | constexpr bool operator()(T&& t, U&& u) const;
|
12137 | 12137 |
|
12138 |
| - using is_transparent = @\unspecnc@; |
| 12138 | + using @\libmember{is_transparent}{less}@ = @\unspecnc@; |
12139 | 12139 | };
|
12140 | 12140 | \end{codeblock}
|
12141 | 12141 |
|
|
12186 | 12186 | template<class T, class U>
|
12187 | 12187 | constexpr bool operator()(T&& t, U&& u) const;
|
12188 | 12188 |
|
12189 |
| - using is_transparent = @\unspecnc@; |
| 12189 | + using @\libmember{is_transparent}{greater_equal}@ = @\unspecnc@; |
12190 | 12190 | };
|
12191 | 12191 | \end{codeblock}
|
12192 | 12192 |
|
|
12214 | 12214 | template<class T, class U>
|
12215 | 12215 | constexpr bool operator()(T&& t, U&& u) const;
|
12216 | 12216 |
|
12217 |
| - using is_transparent = @\unspecnc@; |
| 12217 | + using @\libmember{is_transparent}{less_equal}@ = @\unspecnc@; |
12218 | 12218 | };
|
12219 | 12219 | \end{itemdecl}
|
12220 | 12220 |
|
|
12270 | 12270 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
12271 | 12271 | -> decltype(std::forward<T>(t) && std::forward<U>(u));
|
12272 | 12272 |
|
12273 |
| - using is_transparent = @\unspec@; |
| 12273 | + using @\libmember{is_transparent}{logical_and<>}@ = @\unspec@; |
12274 | 12274 | };
|
12275 | 12275 | \end{itemdecl}
|
12276 | 12276 |
|
|
12312 | 12312 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
12313 | 12313 | -> decltype(std::forward<T>(t) || std::forward<U>(u));
|
12314 | 12314 |
|
12315 |
| - using is_transparent = @\unspec@; |
| 12315 | + using @\libmember{is_transparent}{logical_or<>}@ = @\unspec@; |
12316 | 12316 | };
|
12317 | 12317 | \end{itemdecl}
|
12318 | 12318 |
|
|
12354 | 12354 | template<class T> constexpr auto operator()(T&& t) const
|
12355 | 12355 | -> decltype(!std::forward<T>(t));
|
12356 | 12356 |
|
12357 |
| - using is_transparent = @\unspec@; |
| 12357 | + using @\libmember{is_transparent}{logical_not<>}@ = @\unspec@; |
12358 | 12358 | };
|
12359 | 12359 | \end{itemdecl}
|
12360 | 12360 |
|
|
12405 | 12405 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
12406 | 12406 | -> decltype(std::forward<T>(t) & std::forward<U>(u));
|
12407 | 12407 |
|
12408 |
| - using is_transparent = @\unspec@; |
| 12408 | + using @\libmember{is_transparent}{bit_and<>}@ = @\unspec@; |
12409 | 12409 | };
|
12410 | 12410 | \end{itemdecl}
|
12411 | 12411 |
|
|
12447 | 12447 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
12448 | 12448 | -> decltype(std::forward<T>(t) | std::forward<U>(u));
|
12449 | 12449 |
|
12450 |
| - using is_transparent = @\unspec@; |
| 12450 | + using @\libmember{is_transparent}{bit_or<>}@ = @\unspec@; |
12451 | 12451 | };
|
12452 | 12452 | \end{itemdecl}
|
12453 | 12453 |
|
|
12489 | 12489 | template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
|
12490 | 12490 | -> decltype(std::forward<T>(t) ^ std::forward<U>(u));
|
12491 | 12491 |
|
12492 |
| - using is_transparent = @\unspec@; |
| 12492 | + using @\libmember{is_transparent}{bit_xor<>}@ = @\unspec@; |
12493 | 12493 | };
|
12494 | 12494 | \end{itemdecl}
|
12495 | 12495 |
|
|
12530 | 12530 | template<class T> constexpr auto operator()(T&& t) const
|
12531 | 12531 | -> decltype(~std::forward<T>(t));
|
12532 | 12532 |
|
12533 |
| - using is_transparent = @\unspec@; |
| 12533 | + using @\libmember{is_transparent}{bit_not<>}@ = @\unspec@; |
12534 | 12534 | };
|
12535 | 12535 | \end{itemdecl}
|
12536 | 12536 |
|
|
12555 | 12555 | template<class T>
|
12556 | 12556 | constexpr T&& operator()(T&& t) const noexcept;
|
12557 | 12557 |
|
12558 |
| - using is_transparent = @\unspec@; |
| 12558 | + using @\libmember{is_transparent}{identity}@ = @\unspec@; |
12559 | 12559 | };
|
12560 | 12560 |
|
12561 | 12561 | template<class T>
|
|
13107 | 13107 | template<class R, class... ArgTypes>
|
13108 | 13108 | class function<R(ArgTypes...)> {
|
13109 | 13109 | public:
|
13110 |
| - using result_type = R; |
| 13110 | + using @\libmember{result_type}{function}@ = R; |
13111 | 13111 |
|
13112 | 13112 | // \ref{func.wrap.func.con}, construct/copy/destroy
|
13113 | 13113 | function() noexcept;
|
|
13565 | 13565 | template<class R, class... ArgTypes>
|
13566 | 13566 | class move_only_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
|
13567 | 13567 | public:
|
13568 |
| - using result_type = R; |
| 13568 | + using @\libmember{result_type}{move_only_function}@ = R; |
13569 | 13569 |
|
13570 | 13570 | // \ref{func.wrap.move.ctor}, constructors, assignment, and destructor
|
13571 | 13571 | move_only_function() noexcept;
|
|
13958 | 13958 | template<class R, class... ArgTypes>
|
13959 | 13959 | class copyable_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
|
13960 | 13960 | public:
|
13961 |
| - using result_type = R; |
| 13961 | + using @\libmember{result_type}{copyable_function}@ = R; |
13962 | 13962 |
|
13963 | 13963 | // \ref{func.wrap.copy.ctor}, constructors, assignments, and destructors
|
13964 | 13964 | copyable_function() noexcept;
|
|
0 commit comments