Skip to content

Commit 3e3edbc

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 ce8565e commit 3e3edbc

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
@@ -122,14 +122,14 @@
122122
requires requires { typename pair<common_reference_t<TQual<T1>, UQual<U1>>,
123123
common_reference_t<TQual<T2>, UQual<U2>>>; }
124124
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>>,
126126
common_reference_t<TQual<T2>, UQual<U2>>>;
127127
};
128128

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

135135
// \ref{pairs.spec}, pair specialized algorithms
@@ -725,8 +725,8 @@
725725
namespace std {
726726
template<class T1, class T2>
727727
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;
730730

731731
T1 first;
732732
T2 second;
@@ -1372,7 +1372,7 @@
13721372
\begin{itemdecl}
13731373
template<size_t I, class T1, class T2>
13741374
struct tuple_element<I, pair<T1, T2>> {
1375-
using type = @\seebelow@ ;
1375+
using @\libmember{type}{tuple_element}@ = @\seebelow@ ;
13761376
};
13771377
\end{itemdecl}
13781378
\begin{itemdescr}
@@ -2758,7 +2758,7 @@
27582758
\begin{itemdecl}
27592759
template<size_t I, class... Types>
27602760
struct tuple_element<I, tuple<Types...>> {
2761-
using type = TI;
2761+
using @\libmember{type}{tuple_element}@ = TI;
27622762
};
27632763
\end{itemdecl}
27642764

@@ -3035,7 +3035,7 @@
30353035
template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple,
30363036
template<class> class TQual, template<class> class UQual>
30373037
struct basic_common_reference<TTuple, UTuple, TQual, UQual> {
3038-
using type = @\seebelow@;
3038+
using @\libmember{type}{basic_common_reference}@ = @\seebelow@;
30393039
};
30403040
\end{itemdecl}
30413041

@@ -3064,7 +3064,7 @@
30643064
\begin{itemdecl}
30653065
template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple>
30663066
struct common_type<TTuple, UTuple> {
3067-
using type = @\seebelow@;
3067+
using @\libmember{type}{common_type}@ = @\seebelow@;
30683068
};
30693069
\end{itemdecl}
30703070

@@ -3256,9 +3256,9 @@
32563256
template<class T>
32573257
class optional {
32583258
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}
32623262

32633263
// \ref{optional.ctor}, constructors
32643264
constexpr optional() noexcept;
@@ -4023,8 +4023,8 @@
40234023
\indexlibrarymember{iterator}{optional}%
40244024
\indexlibrarymember{const_iterator}{optional}%
40254025
\begin{itemdecl}
4026-
using iterator = @\impdef@;
4027-
using const_iterator = @\impdef@;
4026+
using @\libmember{iterator}{optional}@ = @\impdef@;
4027+
using @\libmember{const_iterator}{optional}@ = @\impdef@;
40284028
\end{itemdecl}
40294029

40304030
\begin{itemdescr}
@@ -11074,7 +11074,7 @@
1107411074
template<class T> class reference_wrapper {
1107511075
public:
1107611076
// types
11077-
using type = T;
11077+
using @\libmember{type}{reference_wrapper}@ = T;
1107811078

1107911079
// \ref{refwrap.const}, constructors
1108011080
template<class U>
@@ -11394,14 +11394,14 @@
1139411394
requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
1139511395
!@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
1139611396
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>>;
1139811398
};
1139911399

1140011400
template<class T, class R, template<class> class TQual, template<class> class RQual>
1140111401
requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
1140211402
!@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
1140311403
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>>;
1140511405
};
1140611406
}
1140711407
\end{codeblock}
@@ -11440,7 +11440,7 @@
1144011440
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1144111441
-> decltype(std::forward<T>(t) + std::forward<U>(u));
1144211442

11443-
using is_transparent = @\unspec@;
11443+
using @\libmember{is_transparent}{plus<>}@ = @\unspec@;
1144411444
};
1144511445
\end{itemdecl}
1144611446

@@ -11482,7 +11482,7 @@
1148211482
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1148311483
-> decltype(std::forward<T>(t) - std::forward<U>(u));
1148411484

11485-
using is_transparent = @\unspec@;
11485+
using @\libmember{is_transparent}{minus<>}@ = @\unspec@;
1148611486
};
1148711487
\end{itemdecl}
1148811488

@@ -11524,7 +11524,7 @@
1152411524
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1152511525
-> decltype(std::forward<T>(t) * std::forward<U>(u));
1152611526

11527-
using is_transparent = @\unspec@;
11527+
using @\libmember{is_transparent}{multiplies<>}@ = @\unspec@;
1152811528
};
1152911529
\end{itemdecl}
1153011530

@@ -11566,7 +11566,7 @@
1156611566
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1156711567
-> decltype(std::forward<T>(t) / std::forward<U>(u));
1156811568

11569-
using is_transparent = @\unspec@;
11569+
using @\libmember{is_transparent}{divides<>}@ = @\unspec@;
1157011570
};
1157111571
\end{itemdecl}
1157211572

@@ -11608,7 +11608,7 @@
1160811608
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1160911609
-> decltype(std::forward<T>(t) % std::forward<U>(u));
1161011610

11611-
using is_transparent = @\unspec@;
11611+
using @\libmember{is_transparent}{modulus<>}@ = @\unspec@;
1161211612
};
1161311613
\end{itemdecl}
1161411614

@@ -11650,7 +11650,7 @@
1165011650
template<class T> constexpr auto operator()(T&& t) const
1165111651
-> decltype(-std::forward<T>(t));
1165211652

11653-
using is_transparent = @\unspec@;
11653+
using @\libmember{is_transparent}{negate<>}@ = @\unspec@;
1165411654
};
1165511655
\end{itemdecl}
1165611656

@@ -11718,7 +11718,7 @@
1171811718
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1171911719
-> decltype(std::forward<T>(t) == std::forward<U>(u));
1172011720

11721-
using is_transparent = @\unspec@;
11721+
using @\libmember{is_transparent}{equal_to<>}@ = @\unspec@;
1172211722
};
1172311723
\end{itemdecl}
1172411724

@@ -11760,7 +11760,7 @@
1176011760
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1176111761
-> decltype(std::forward<T>(t) != std::forward<U>(u));
1176211762

11763-
using is_transparent = @\unspec@;
11763+
using @\libmember{is_transparent}{not_equal_to<>}@ = @\unspec@;
1176411764
};
1176511765
\end{itemdecl}
1176611766

@@ -11802,7 +11802,7 @@
1180211802
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1180311803
-> decltype(std::forward<T>(t) > std::forward<U>(u));
1180411804

11805-
using is_transparent = @\unspec@;
11805+
using @\libmember{is_transparent}{greater<>}@ = @\unspec@;
1180611806
};
1180711807
\end{itemdecl}
1180811808

@@ -11844,7 +11844,7 @@
1184411844
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1184511845
-> decltype(std::forward<T>(t) < std::forward<U>(u));
1184611846

11847-
using is_transparent = @\unspec@;
11847+
using @\libmember{is_transparent}{less<>}@ = @\unspec@;
1184811848
};
1184911849
\end{itemdecl}
1185011850

@@ -11886,7 +11886,7 @@
1188611886
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1188711887
-> decltype(std::forward<T>(t) >= std::forward<U>(u));
1188811888

11889-
using is_transparent = @\unspec@;
11889+
using @\libmember{is_transparent}{greater_equal<>}@ = @\unspec@;
1189011890
};
1189111891
\end{itemdecl}
1189211892

@@ -11928,7 +11928,7 @@
1192811928
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1192911929
-> decltype(std::forward<T>(t) <= std::forward<U>(u));
1193011930

11931-
using is_transparent = @\unspec@;
11931+
using @\libmember{is_transparent}{less_equal<>}@ = @\unspec@;
1193211932
};
1193311933
\end{itemdecl}
1193411934

@@ -11953,7 +11953,7 @@
1195311953
template<class T, class U>
1195411954
constexpr auto operator()(T&& t, U&& u) const;
1195511955

11956-
using is_transparent = @\unspec@;
11956+
using @\libmember{is_transparent}{compare_three_way}@ = @\unspec@;
1195711957
};
1195811958
}
1195911959
\end{codeblock}
@@ -12002,7 +12002,7 @@
1200212002
template<class T, class U>
1200312003
constexpr bool operator()(T&& t, U&& u) const;
1200412004

12005-
using is_transparent = @\unspecnc@;
12005+
using @\libmember{is_transparent}{equal_to}@ = @\unspecnc@;
1200612006
};
1200712007
\end{codeblock}
1200812008

@@ -12046,7 +12046,7 @@
1204612046
template<class T, class U>
1204712047
constexpr bool operator()(T&& t, U&& u) const;
1204812048

12049-
using is_transparent = @\unspecnc@;
12049+
using @\libmember{is_transparent}{not_equal_to}@ = @\unspecnc@;
1205012050
};
1205112051
\end{codeblock}
1205212052

@@ -12074,7 +12074,7 @@
1207412074
template<class T, class U>
1207512075
constexpr bool operator()(T&& t, U&& u) const;
1207612076

12077-
using is_transparent = @\unspecnc@;
12077+
using @\libmember{is_transparent}{greater}@ = @\unspecnc@;
1207812078
};
1207912079
\end{codeblock}
1208012080

@@ -12102,7 +12102,7 @@
1210212102
template<class T, class U>
1210312103
constexpr bool operator()(T&& t, U&& u) const;
1210412104

12105-
using is_transparent = @\unspecnc@;
12105+
using @\libmember{is_transparent}{less}@ = @\unspecnc@;
1210612106
};
1210712107
\end{codeblock}
1210812108

@@ -12153,7 +12153,7 @@
1215312153
template<class T, class U>
1215412154
constexpr bool operator()(T&& t, U&& u) const;
1215512155

12156-
using is_transparent = @\unspecnc@;
12156+
using @\libmember{is_transparent}{greater_equal}@ = @\unspecnc@;
1215712157
};
1215812158
\end{codeblock}
1215912159

@@ -12181,7 +12181,7 @@
1218112181
template<class T, class U>
1218212182
constexpr bool operator()(T&& t, U&& u) const;
1218312183

12184-
using is_transparent = @\unspecnc@;
12184+
using @\libmember{is_transparent}{less_equal}@ = @\unspecnc@;
1218512185
};
1218612186
\end{itemdecl}
1218712187

@@ -12237,7 +12237,7 @@
1223712237
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1223812238
-> decltype(std::forward<T>(t) && std::forward<U>(u));
1223912239

12240-
using is_transparent = @\unspec@;
12240+
using @\libmember{is_transparent}{logical_and<>}@ = @\unspec@;
1224112241
};
1224212242
\end{itemdecl}
1224312243

@@ -12279,7 +12279,7 @@
1227912279
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1228012280
-> decltype(std::forward<T>(t) || std::forward<U>(u));
1228112281

12282-
using is_transparent = @\unspec@;
12282+
using @\libmember{is_transparent}{logical_or<>}@ = @\unspec@;
1228312283
};
1228412284
\end{itemdecl}
1228512285

@@ -12321,7 +12321,7 @@
1232112321
template<class T> constexpr auto operator()(T&& t) const
1232212322
-> decltype(!std::forward<T>(t));
1232312323

12324-
using is_transparent = @\unspec@;
12324+
using @\libmember{is_transparent}{logical_not<>}@ = @\unspec@;
1232512325
};
1232612326
\end{itemdecl}
1232712327

@@ -12372,7 +12372,7 @@
1237212372
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1237312373
-> decltype(std::forward<T>(t) & std::forward<U>(u));
1237412374

12375-
using is_transparent = @\unspec@;
12375+
using @\libmember{is_transparent}{bit_and<>}@ = @\unspec@;
1237612376
};
1237712377
\end{itemdecl}
1237812378

@@ -12414,7 +12414,7 @@
1241412414
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1241512415
-> decltype(std::forward<T>(t) | std::forward<U>(u));
1241612416

12417-
using is_transparent = @\unspec@;
12417+
using @\libmember{is_transparent}{bit_or<>}@ = @\unspec@;
1241812418
};
1241912419
\end{itemdecl}
1242012420

@@ -12456,7 +12456,7 @@
1245612456
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
1245712457
-> decltype(std::forward<T>(t) ^ std::forward<U>(u));
1245812458

12459-
using is_transparent = @\unspec@;
12459+
using @\libmember{is_transparent}{bit_xor<>}@ = @\unspec@;
1246012460
};
1246112461
\end{itemdecl}
1246212462

@@ -12497,7 +12497,7 @@
1249712497
template<class T> constexpr auto operator()(T&& t) const
1249812498
-> decltype(~std::forward<T>(t));
1249912499

12500-
using is_transparent = @\unspec@;
12500+
using @\libmember{is_transparent}{bit_not<>}@ = @\unspec@;
1250112501
};
1250212502
\end{itemdecl}
1250312503

@@ -12522,7 +12522,7 @@
1252212522
template<class T>
1252312523
constexpr T&& operator()(T&& t) const noexcept;
1252412524

12525-
using is_transparent = @\unspec@;
12525+
using @\libmember{is_transparent}{identity}@ = @\unspec@;
1252612526
};
1252712527

1252812528
template<class T>
@@ -13076,7 +13076,7 @@
1307613076
template<class R, class... ArgTypes>
1307713077
class function<R(ArgTypes...)> {
1307813078
public:
13079-
using result_type = R;
13079+
using @\libmember{result_type}{function}@ = R;
1308013080

1308113081
// \ref{func.wrap.func.con}, construct/copy/destroy
1308213082
function() noexcept;
@@ -13547,7 +13547,7 @@
1354713547
template<class R, class... ArgTypes>
1354813548
class move_only_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
1354913549
public:
13550-
using result_type = R;
13550+
using @\libmember{result_type}{move_only_function}@ = R;
1355113551

1355213552
// \ref{func.wrap.move.ctor}, constructors, assignment, and destructor
1355313553
move_only_function() noexcept;
@@ -13940,7 +13940,7 @@
1394013940
template<class R, class... ArgTypes>
1394113941
class copyable_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
1394213942
public:
13943-
using result_type = R;
13943+
using @\libmember{result_type}{copyable_function}@ = R;
1394413944

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

0 commit comments

Comments
 (0)