Skip to content

Commit 513ccc9

Browse files
committed
[utilities] Consistently index member typedefs in the utilites header
Audited the file `utilities.tex` for indexing of member typedefs. Several idioms were in use, and not all typedef-names were indexed. Adopted what seemed to be the preferred approach of using the `@\libmember{}@` style of definition within the class definition itself, so that omissions become obvious if more typedef-names are added in the future. Please provide feedback on whether indexing the explicit template specialization for `<void>` types is the correct approach. It pulls out the name that is not present for the primary template, and then the ranges library adds some non-template classes with the same name.
1 parent f9847af commit 513ccc9

File tree

1 file changed

+46
-46
lines changed

1 file changed

+46
-46
lines changed

source/utilities.tex

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@
123123
requires requires { typename pair<common_reference_t<TQual<T1>, UQual<U1>>,
124124
common_reference_t<TQual<T2>, UQual<U2>>>; }
125125
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>>,
127127
common_reference_t<TQual<T2>, UQual<U2>>>;
128128
};
129129

130130
template<class T1, class T2, class U1, class U2>
131131
requires requires { typename pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; }
132132
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>>;
134134
};
135135

136136
// \ref{pairs.spec}, pair specialized algorithms
@@ -752,8 +752,8 @@
752752
namespace std {
753753
template<class T1, class T2>
754754
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;
757757

758758
T1 first;
759759
T2 second;
@@ -1399,7 +1399,7 @@
13991399
\begin{itemdecl}
14001400
template<size_t I, class T1, class T2>
14011401
struct tuple_element<I, pair<T1, T2>> {
1402-
using type = @\seebelow@ ;
1402+
using @\libmember{type}{tuple_element}@ = @\seebelow@ ;
14031403
};
14041404
\end{itemdecl}
14051405
\begin{itemdescr}
@@ -2785,7 +2785,7 @@
27852785
\begin{itemdecl}
27862786
template<size_t I, class... Types>
27872787
struct tuple_element<I, tuple<Types...>> {
2788-
using type = TI;
2788+
using @\libmember{type}{tuple_element}@ = TI;
27892789
};
27902790
\end{itemdecl}
27912791

@@ -3062,7 +3062,7 @@
30623062
template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple,
30633063
template<class> class TQual, template<class> class UQual>
30643064
struct basic_common_reference<TTuple, UTuple, TQual, UQual> {
3065-
using type = @\seebelow@;
3065+
using @\libmember{type}{basic_common_reference}@ = @\seebelow@;
30663066
};
30673067
\end{itemdecl}
30683068

@@ -3091,7 +3091,7 @@
30913091
\begin{itemdecl}
30923092
template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple>
30933093
struct common_type<TTuple, UTuple> {
3094-
using type = @\seebelow@;
3094+
using @\libmember{type}{common_type}@ = @\seebelow@;
30953095
};
30963096
\end{itemdecl}
30973097

@@ -3283,9 +3283,9 @@
32833283
template<class T>
32843284
class optional {
32853285
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}
32893289

32903290
// \ref{optional.ctor}, constructors
32913291
constexpr optional() noexcept;
@@ -4050,8 +4050,8 @@
40504050
\indexlibrarymember{iterator}{optional}%
40514051
\indexlibrarymember{const_iterator}{optional}%
40524052
\begin{itemdecl}
4053-
using iterator = @\impdef@;
4054-
using const_iterator = @\impdef@;
4053+
using @\libmember{iterator}{optional}@ = @\impdef@;
4054+
using @\libmember{const_iterator}{optional}@ = @\impdef@;
40554055
\end{itemdecl}
40564056

40574057
\begin{itemdescr}
@@ -11107,7 +11107,7 @@
1110711107
template<class T> class reference_wrapper {
1110811108
public:
1110911109
// types
11110-
using type = T;
11110+
using @\libmember{type}{reference_wrapper}@ = T;
1111111111

1111211112
// \ref{refwrap.const}, constructors
1111311113
template<class U>
@@ -11427,14 +11427,14 @@
1142711427
requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
1142811428
!@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
1142911429
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>>;
1143111431
};
1143211432

1143311433
template<class T, class R, template<class> class TQual, template<class> class RQual>
1143411434
requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
1143511435
!@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
1143611436
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>>;
1143811438
};
1143911439
}
1144011440
\end{codeblock}
@@ -11473,7 +11473,7 @@
1147311473
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1147411474
-> decltype(std::forward<T>(t) + std::forward<U>(u));
1147511475

11476-
using is_transparent = @\unspec@;
11476+
using @\libmember{is_transparent}{plus<>}@ = @\unspec@;
1147711477
};
1147811478
\end{itemdecl}
1147911479

@@ -11515,7 +11515,7 @@
1151511515
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1151611516
-> decltype(std::forward<T>(t) - std::forward<U>(u));
1151711517

11518-
using is_transparent = @\unspec@;
11518+
using @\libmember{is_transparent}{minus<>}@ = @\unspec@;
1151911519
};
1152011520
\end{itemdecl}
1152111521

@@ -11557,7 +11557,7 @@
1155711557
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1155811558
-> decltype(std::forward<T>(t) * std::forward<U>(u));
1155911559

11560-
using is_transparent = @\unspec@;
11560+
using @\libmember{is_transparent}{multiplies<>}@ = @\unspec@;
1156111561
};
1156211562
\end{itemdecl}
1156311563

@@ -11599,7 +11599,7 @@
1159911599
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1160011600
-> decltype(std::forward<T>(t) / std::forward<U>(u));
1160111601

11602-
using is_transparent = @\unspec@;
11602+
using @\libmember{is_transparent}{divides<>}@ = @\unspec@;
1160311603
};
1160411604
\end{itemdecl}
1160511605

@@ -11641,7 +11641,7 @@
1164111641
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1164211642
-> decltype(std::forward<T>(t) % std::forward<U>(u));
1164311643

11644-
using is_transparent = @\unspec@;
11644+
using @\libmember{is_transparent}{modulus<>}@ = @\unspec@;
1164511645
};
1164611646
\end{itemdecl}
1164711647

@@ -11683,7 +11683,7 @@
1168311683
template<class T> constexpr auto operator()(T&& t) const
1168411684
-> decltype(-std::forward<T>(t));
1168511685

11686-
using is_transparent = @\unspec@;
11686+
using @\libmember{is_transparent}{negate<>}@ = @\unspec@;
1168711687
};
1168811688
\end{itemdecl}
1168911689

@@ -11751,7 +11751,7 @@
1175111751
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1175211752
-> decltype(std::forward<T>(t) == std::forward<U>(u));
1175311753

11754-
using is_transparent = @\unspec@;
11754+
using @\libmember{is_transparent}{equal_to<>}@ = @\unspec@;
1175511755
};
1175611756
\end{itemdecl}
1175711757

@@ -11793,7 +11793,7 @@
1179311793
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1179411794
-> decltype(std::forward<T>(t) != std::forward<U>(u));
1179511795

11796-
using is_transparent = @\unspec@;
11796+
using @\libmember{is_transparent}{not_equal_to<>}@ = @\unspec@;
1179711797
};
1179811798
\end{itemdecl}
1179911799

@@ -11835,7 +11835,7 @@
1183511835
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1183611836
-> decltype(std::forward<T>(t) > std::forward<U>(u));
1183711837

11838-
using is_transparent = @\unspec@;
11838+
using @\libmember{is_transparent}{greater<>}@ = @\unspec@;
1183911839
};
1184011840
\end{itemdecl}
1184111841

@@ -11877,7 +11877,7 @@
1187711877
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1187811878
-> decltype(std::forward<T>(t) < std::forward<U>(u));
1187911879

11880-
using is_transparent = @\unspec@;
11880+
using @\libmember{is_transparent}{less<>}@ = @\unspec@;
1188111881
};
1188211882
\end{itemdecl}
1188311883

@@ -11919,7 +11919,7 @@
1191911919
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1192011920
-> decltype(std::forward<T>(t) >= std::forward<U>(u));
1192111921

11922-
using is_transparent = @\unspec@;
11922+
using @\libmember{is_transparent}{greater_equal<>}@ = @\unspec@;
1192311923
};
1192411924
\end{itemdecl}
1192511925

@@ -11961,7 +11961,7 @@
1196111961
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1196211962
-> decltype(std::forward<T>(t) <= std::forward<U>(u));
1196311963

11964-
using is_transparent = @\unspec@;
11964+
using @\libmember{is_transparent}{less_equal<>}@ = @\unspec@;
1196511965
};
1196611966
\end{itemdecl}
1196711967

@@ -11986,7 +11986,7 @@
1198611986
template<class T, class U>
1198711987
constexpr auto operator()(T&& t, U&& u) const;
1198811988

11989-
using is_transparent = @\unspec@;
11989+
using @\libmember{is_transparent}{compare_three_way}@ = @\unspec@;
1199011990
};
1199111991
}
1199211992
\end{codeblock}
@@ -12035,7 +12035,7 @@
1203512035
template<class T, class U>
1203612036
constexpr bool operator()(T&& t, U&& u) const;
1203712037

12038-
using is_transparent = @\unspecnc@;
12038+
using @\libmember{is_transparent}{equal_to}@ = @\unspecnc@;
1203912039
};
1204012040
\end{codeblock}
1204112041

@@ -12079,7 +12079,7 @@
1207912079
template<class T, class U>
1208012080
constexpr bool operator()(T&& t, U&& u) const;
1208112081

12082-
using is_transparent = @\unspecnc@;
12082+
using @\libmember{is_transparent}{not_equal_to}@ = @\unspecnc@;
1208312083
};
1208412084
\end{codeblock}
1208512085

@@ -12107,7 +12107,7 @@
1210712107
template<class T, class U>
1210812108
constexpr bool operator()(T&& t, U&& u) const;
1210912109

12110-
using is_transparent = @\unspecnc@;
12110+
using @\libmember{is_transparent}{greater}@ = @\unspecnc@;
1211112111
};
1211212112
\end{codeblock}
1211312113

@@ -12135,7 +12135,7 @@
1213512135
template<class T, class U>
1213612136
constexpr bool operator()(T&& t, U&& u) const;
1213712137

12138-
using is_transparent = @\unspecnc@;
12138+
using @\libmember{is_transparent}{less}@ = @\unspecnc@;
1213912139
};
1214012140
\end{codeblock}
1214112141

@@ -12186,7 +12186,7 @@
1218612186
template<class T, class U>
1218712187
constexpr bool operator()(T&& t, U&& u) const;
1218812188

12189-
using is_transparent = @\unspecnc@;
12189+
using @\libmember{is_transparent}{greater_equal}@ = @\unspecnc@;
1219012190
};
1219112191
\end{codeblock}
1219212192

@@ -12214,7 +12214,7 @@
1221412214
template<class T, class U>
1221512215
constexpr bool operator()(T&& t, U&& u) const;
1221612216

12217-
using is_transparent = @\unspecnc@;
12217+
using @\libmember{is_transparent}{less_equal}@ = @\unspecnc@;
1221812218
};
1221912219
\end{itemdecl}
1222012220

@@ -12270,7 +12270,7 @@
1227012270
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1227112271
-> decltype(std::forward<T>(t) && std::forward<U>(u));
1227212272

12273-
using is_transparent = @\unspec@;
12273+
using @\libmember{is_transparent}{logical_and<>}@ = @\unspec@;
1227412274
};
1227512275
\end{itemdecl}
1227612276

@@ -12312,7 +12312,7 @@
1231212312
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1231312313
-> decltype(std::forward<T>(t) || std::forward<U>(u));
1231412314

12315-
using is_transparent = @\unspec@;
12315+
using @\libmember{is_transparent}{logical_or<>}@ = @\unspec@;
1231612316
};
1231712317
\end{itemdecl}
1231812318

@@ -12354,7 +12354,7 @@
1235412354
template<class T> constexpr auto operator()(T&& t) const
1235512355
-> decltype(!std::forward<T>(t));
1235612356

12357-
using is_transparent = @\unspec@;
12357+
using @\libmember{is_transparent}{logical_not<>}@ = @\unspec@;
1235812358
};
1235912359
\end{itemdecl}
1236012360

@@ -12405,7 +12405,7 @@
1240512405
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1240612406
-> decltype(std::forward<T>(t) & std::forward<U>(u));
1240712407

12408-
using is_transparent = @\unspec@;
12408+
using @\libmember{is_transparent}{bit_and<>}@ = @\unspec@;
1240912409
};
1241012410
\end{itemdecl}
1241112411

@@ -12447,7 +12447,7 @@
1244712447
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1244812448
-> decltype(std::forward<T>(t) | std::forward<U>(u));
1244912449

12450-
using is_transparent = @\unspec@;
12450+
using @\libmember{is_transparent}{bit_or<>}@ = @\unspec@;
1245112451
};
1245212452
\end{itemdecl}
1245312453

@@ -12489,7 +12489,7 @@
1248912489
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1249012490
-> decltype(std::forward<T>(t) ^ std::forward<U>(u));
1249112491

12492-
using is_transparent = @\unspec@;
12492+
using @\libmember{is_transparent}{bit_xor<>}@ = @\unspec@;
1249312493
};
1249412494
\end{itemdecl}
1249512495

@@ -12530,7 +12530,7 @@
1253012530
template<class T> constexpr auto operator()(T&& t) const
1253112531
-> decltype(~std::forward<T>(t));
1253212532

12533-
using is_transparent = @\unspec@;
12533+
using @\libmember{is_transparent}{bit_not<>}@ = @\unspec@;
1253412534
};
1253512535
\end{itemdecl}
1253612536

@@ -12555,7 +12555,7 @@
1255512555
template<class T>
1255612556
constexpr T&& operator()(T&& t) const noexcept;
1255712557

12558-
using is_transparent = @\unspec@;
12558+
using @\libmember{is_transparent}{identity}@ = @\unspec@;
1255912559
};
1256012560

1256112561
template<class T>
@@ -13107,7 +13107,7 @@
1310713107
template<class R, class... ArgTypes>
1310813108
class function<R(ArgTypes...)> {
1310913109
public:
13110-
using result_type = R;
13110+
using @\libmember{result_type}{function}@ = R;
1311113111

1311213112
// \ref{func.wrap.func.con}, construct/copy/destroy
1311313113
function() noexcept;
@@ -13565,7 +13565,7 @@
1356513565
template<class R, class... ArgTypes>
1356613566
class move_only_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
1356713567
public:
13568-
using result_type = R;
13568+
using @\libmember{result_type}{move_only_function}@ = R;
1356913569

1357013570
// \ref{func.wrap.move.ctor}, constructors, assignment, and destructor
1357113571
move_only_function() noexcept;
@@ -13958,7 +13958,7 @@
1395813958
template<class R, class... ArgTypes>
1395913959
class copyable_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
1396013960
public:
13961-
using result_type = R;
13961+
using @\libmember{result_type}{copyable_function}@ = R;
1396213962

1396313963
// \ref{func.wrap.copy.ctor}, constructors, assignments, and destructors
1396413964
copyable_function() noexcept;

0 commit comments

Comments
 (0)