Skip to content

[utilities] Consistently index all member typedefs in the utilites he… #6006

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 46 additions & 46 deletions source/utilities.tex
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,14 @@
requires requires { typename pair<common_reference_t<TQual<T1>, UQual<U1>>,
common_reference_t<TQual<T2>, UQual<U2>>>; }
struct basic_common_reference<pair<T1, T2>, pair<U1, U2>, TQual, UQual> {
using type = pair<common_reference_t<TQual<T1>, UQual<U1>>,
using @\libmember{type}{basic_common_reference}@ = pair<common_reference_t<TQual<T1>, UQual<U1>>,
common_reference_t<TQual<T2>, UQual<U2>>>;
};

template<class T1, class T2, class U1, class U2>
requires requires { typename pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; }
struct common_type<pair<T1, T2>, pair<U1, U2>> {
using type = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>;
using @\libmember{type}{common_type}@ = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>;
};

// \ref{pairs.spec}, pair specialized algorithms
Expand Down Expand Up @@ -752,8 +752,8 @@
namespace std {
template<class T1, class T2>
struct pair {
using first_type = T1;
using second_type = T2;
using @\libmember{first_type}{pair}@ = T1;
using @\libmember{second_type}{pair}@ = T2;

T1 first;
T2 second;
Expand Down Expand Up @@ -1399,7 +1399,7 @@
\begin{itemdecl}
template<size_t I, class T1, class T2>
struct tuple_element<I, pair<T1, T2>> {
using type = @\seebelow@ ;
using @\libmember{type}{tuple_element}@ = @\seebelow@ ;
};
\end{itemdecl}
\begin{itemdescr}
Expand Down Expand Up @@ -2785,7 +2785,7 @@
\begin{itemdecl}
template<size_t I, class... Types>
struct tuple_element<I, tuple<Types...>> {
using type = TI;
using @\libmember{type}{tuple_element}@ = TI;
};
\end{itemdecl}

Expand Down Expand Up @@ -3062,7 +3062,7 @@
template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple,
template<class> class TQual, template<class> class UQual>
struct basic_common_reference<TTuple, UTuple, TQual, UQual> {
using type = @\seebelow@;
using @\libmember{type}{basic_common_reference}@ = @\seebelow@;
};
\end{itemdecl}

Expand Down Expand Up @@ -3091,7 +3091,7 @@
\begin{itemdecl}
template<@\exposconcept{tuple-like}@ TTuple, @\exposconcept{tuple-like}@ UTuple>
struct common_type<TTuple, UTuple> {
using type = @\seebelow@;
using @\libmember{type}{common_type}@ = @\seebelow@;
};
\end{itemdecl}

Expand Down Expand Up @@ -3283,9 +3283,9 @@
template<class T>
class optional {
public:
using value_type = T;
using iterator = @\impdefnc@; // see~\ref{optional.iterators}
using const_iterator = @\impdefnc@; // see~\ref{optional.iterators}
using @\libmember{value_type}{optional}@ = T;
using @\libmember{iterator}{optional}@ = @\impdefnc@; // see~\ref{optional.iterators}
using @\libmember{const_iterator}{optional}@ = @\impdefnc@; // see~\ref{optional.iterators}

// \ref{optional.ctor}, constructors
constexpr optional() noexcept;
Expand Down Expand Up @@ -4050,8 +4050,8 @@
\indexlibrarymember{iterator}{optional}%
\indexlibrarymember{const_iterator}{optional}%
\begin{itemdecl}
using iterator = @\impdef@;
using const_iterator = @\impdef@;
using @\libmember{iterator}{optional}@ = @\impdef@;
using @\libmember{const_iterator}{optional}@ = @\impdef@;
\end{itemdecl}

\begin{itemdescr}
Expand Down Expand Up @@ -11107,7 +11107,7 @@
template<class T> class reference_wrapper {
public:
// types
using type = T;
using @\libmember{type}{reference_wrapper}@ = T;

// \ref{refwrap.const}, constructors
template<class U>
Expand Down Expand Up @@ -11427,14 +11427,14 @@
requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
!@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
struct basic_common_reference<R, T, RQual, TQual> {
using type = common_reference_t<typename R::type&, TQual<T>>;
using @\libmember{type}{basic_common_reference}@ = common_reference_t<typename R::type&, TQual<T>>;
};

template<class T, class R, template<class> class TQual, template<class> class RQual>
requires (@\exposconcept{ref-wrap-common-reference-exists-with}@<R, T, RQual<R>, TQual<T>> &&
!@\exposconcept{ref-wrap-common-reference-exists-with}@<T, R, TQual<T>, RQual<R>>)
struct basic_common_reference<T, R, TQual, RQual> {
using type = common_reference_t<typename R::type&, TQual<T>>;
using @\libmember{type}{basic_common_reference}@ = common_reference_t<typename R::type&, TQual<T>>;
};
}
\end{codeblock}
Expand Down Expand Up @@ -11473,7 +11473,7 @@
template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
-> decltype(std::forward<T>(t) + std::forward<U>(u));

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{plus<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{minus<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{multiplies<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{divides<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{modulus<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{negate<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{equal_to<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{not_equal_to<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{greater<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{less<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{greater_equal<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{less_equal<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{compare_three_way}@ = @\unspec@;
};
}
\end{codeblock}
Expand Down Expand Up @@ -12035,7 +12035,7 @@
template<class T, class U>
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
using @\libmember{is_transparent}{equal_to}@ = @\unspecnc@;
};
\end{codeblock}

Expand Down Expand Up @@ -12079,7 +12079,7 @@
template<class T, class U>
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
using @\libmember{is_transparent}{not_equal_to}@ = @\unspecnc@;
};
\end{codeblock}

Expand Down Expand Up @@ -12107,7 +12107,7 @@
template<class T, class U>
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
using @\libmember{is_transparent}{greater}@ = @\unspecnc@;
};
\end{codeblock}

Expand Down Expand Up @@ -12135,7 +12135,7 @@
template<class T, class U>
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
using @\libmember{is_transparent}{less}@ = @\unspecnc@;
};
\end{codeblock}

Expand Down Expand Up @@ -12186,7 +12186,7 @@
template<class T, class U>
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
using @\libmember{is_transparent}{greater_equal}@ = @\unspecnc@;
};
\end{codeblock}

Expand Down Expand Up @@ -12214,7 +12214,7 @@
template<class T, class U>
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
using @\libmember{is_transparent}{less_equal}@ = @\unspecnc@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{logical_and<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{logical_or<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{logical_not<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{bit_and<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{bit_or<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{bit_xor<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{bit_not<>}@ = @\unspec@;
};
\end{itemdecl}

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

using is_transparent = @\unspec@;
using @\libmember{is_transparent}{identity}@ = @\unspec@;
};

template<class T>
Expand Down Expand Up @@ -13107,7 +13107,7 @@
template<class R, class... ArgTypes>
class function<R(ArgTypes...)> {
public:
using result_type = R;
using @\libmember{result_type}{function}@ = R;

// \ref{func.wrap.func.con}, construct/copy/destroy
function() noexcept;
Expand Down Expand Up @@ -13565,7 +13565,7 @@
template<class R, class... ArgTypes>
class move_only_function<R(ArgTypes...) @\cv{}@ @\placeholder{ref}@ noexcept(@\placeholder{noex}@)> {
public:
using result_type = R;
using @\libmember{result_type}{move_only_function}@ = R;

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

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