From 5565b73b63f81494c83f8eab88ebd57df15f7495 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 10:42:48 +0800 Subject: [PATCH 01/17] [expos.only.entity] Use `\exposid(nc)` for exposition-only utilities --- source/lib-intro.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/lib-intro.tex b/source/lib-intro.tex index b78c4f80eb..23bcf3a53f 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -539,16 +539,16 @@ \pnum The following are defined for exposition only to aid in the specification of the library: -\indexlibrary{decay-copy@\tcode{\placeholder{decay-copy}}}% +\indexlibrary{decay-copy@\exposid{decay-copy}}% \begin{codeblock} namespace std { template requires @\libconcept{convertible_to}@> - constexpr decay_t @\placeholdernc{decay-copy}@(T&& v) // \expos + constexpr decay_t @\exposidnc{decay-copy}@(T&& v) // \expos noexcept(is_nothrow_convertible_v>) { return std::forward(v); } - constexpr auto @\placeholdernc{synth-three-way}@ = // \expos + constexpr auto @\exposidnc{synth-three-way}@ = // \expos [](const T& t, const U& u) requires requires { { t < u } -> @\exposconcept{boolean-testable}@; @@ -565,8 +565,8 @@ }; template - using @\placeholdernc{synth-three-way-result}@ = // \expos - decltype(@\placeholdernc{synth-three-way}@(declval(), declval())); + using @\exposidnc{synth-three-way-result}@ = // \expos + decltype(@\exposidnc{synth-three-way}@(declval(), declval())); } \end{codeblock} From 39a2605d6520a1fbdcab518745649c4f5f276d10 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 10:44:18 +0800 Subject: [PATCH 02/17] [utility.syn] Use `\exposid` for `synth-three-way-result` --- source/utilities.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/utilities.tex b/source/utilities.tex index 78f27b093d..dffde37744 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -137,8 +137,8 @@ template constexpr bool operator==(const pair&, const pair&); template - constexpr common_comparison_category_t<@\placeholder{synth-three-way-result}@, - @\placeholder{synth-three-way-result}@> + constexpr common_comparison_category_t<@\exposid{synth-three-way-result}@, + @\exposid{synth-three-way-result}@> operator<=>(const pair&, const pair&); template From f5836a333d18a94a298624d0c5f3ba52dbc4801b Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 10:45:50 +0800 Subject: [PATCH 03/17] [pairs.spec] Use `\exposid(nc)` for `synth-three-way(-result)` --- source/utilities.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/utilities.tex b/source/utilities.tex index dffde37744..636571748f 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -1318,8 +1318,8 @@ \indexlibrarymember{operator<=>}{pair}% \begin{itemdecl} template - constexpr common_comparison_category_t<@\placeholder{synth-three-way-result}@, - @\placeholder{synth-three-way-result}@> + constexpr common_comparison_category_t<@\exposid{synth-three-way-result}@, + @\exposid{synth-three-way-result}@> operator<=>(const pair& x, const pair& y); \end{itemdecl} @@ -1328,8 +1328,8 @@ \effects Equivalent to: \begin{codeblock} -if (auto c = @\placeholdernc{synth-three-way}@(x.first, y.first); c != 0) return c; -return @\placeholdernc{synth-three-way}@(x.second, y.second); +if (auto c = @\exposidnc{synth-three-way}@(x.first, y.first); c != 0) return c; +return @\exposidnc{synth-three-way}@(x.second, y.second); \end{codeblock} \end{itemdescr} From fe2bbdfc1a5f6eb942f6e535594f4ba12cb330e1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 10:53:52 +0800 Subject: [PATCH 04/17] [tuple.syn] Use `\exposidnc` for `synth-three-way-result` --- source/utilities.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/utilities.tex b/source/utilities.tex index 636571748f..7c76f918d7 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -1614,7 +1614,7 @@ template constexpr bool operator==(const tuple&, const UTuple&); template - constexpr common_comparison_category_t<@\placeholdernc{synth-three-way-result}@...> + constexpr common_comparison_category_t<@\exposidnc{synth-three-way-result}@...> operator<=>(const tuple&, const tuple&); template constexpr @\seebelownc@ operator<=>(const tuple&, const UTuple&); From fdfde7c6f95292580b5c66b5637019836c7629a3 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 10:54:57 +0800 Subject: [PATCH 05/17] [tuple.rel] Use `\exposid` for `synth-three-way(-result)` --- source/utilities.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/utilities.tex b/source/utilities.tex index 7c76f918d7..f8fbca56cb 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -2992,10 +2992,10 @@ \indexlibrarymember{operator<=>}{tuple}% \begin{itemdecl} template - constexpr common_comparison_category_t<@\placeholder{synth-three-way-result}@...> + constexpr common_comparison_category_t<@\exposid{synth-three-way-result}@...> operator<=>(const tuple& t, const tuple& u); template - constexpr common_comparison_category_t<@\placeholder{synth-three-way-result}@...> + constexpr common_comparison_category_t<@\exposid{synth-three-way-result}@...> operator<=>(const tuple& t, const UTuple& u); \end{itemdecl} @@ -3013,7 +3013,7 @@ returns \tcode{strong_ordering::equal}. Otherwise, equivalent to: \begin{codeblock} -if (auto c = @\placeholder{synth-three-way}@(get<0>(t), get<0>(u)); c != 0) return c; +if (auto c = @\exposid{synth-three-way}@(get<0>(t), get<0>(u)); c != 0) return c; return @$\tcode{t}_\mathrm{tail}$@ <=> @$\tcode{u}_\mathrm{tail}$@; \end{codeblock} where $\tcode{r}_\mathrm{tail}$ for some \tcode{r} From d5d2878e2c67e8a5c333574c4b7f941000d2586e Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:01:18 +0800 Subject: [PATCH 06/17] [array.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index 30e86d03f6..cc6599dbd9 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -6076,7 +6076,7 @@ template constexpr bool operator==(const array& x, const array& y); template - constexpr @\placeholder{synth-three-way-result}@ + constexpr @\exposid{synth-three-way-result}@ operator<=>(const array& x, const array& y); // \ref{array.special}, specialized algorithms From cc337d89e6c53fdc2f566ec4477832891416a8c0 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:01:46 +0800 Subject: [PATCH 07/17] [deque.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index cc6599dbd9..3a9b2fe242 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -6444,7 +6444,7 @@ template constexpr bool operator==(const deque& x, const deque& y); template - constexpr @\placeholder{synth-three-way-result}@ operator<=>(const deque& x, + constexpr @\exposid{synth-three-way-result}@ operator<=>(const deque& x, @\itcorr@ const deque& y); template From 21b0d5e44ed1cface226d1845a935c8ae8dd692e Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:02:10 +0800 Subject: [PATCH 08/17] [forward.list.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index 3a9b2fe242..3504dd6f75 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -6940,7 +6940,7 @@ constexpr bool operator==(const forward_list& x, const forward_list& y); template - constexpr @\placeholder{synth-three-way-result}@ operator<=>(const forward_list& x, + constexpr @\exposid{synth-three-way-result}@ operator<=>(const forward_list& x, @\itcorr@ const forward_list& y); template From ee0816f7004abec6576a1d838a9145a27bc56006 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:02:30 +0800 Subject: [PATCH 09/17] [list.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index 3504dd6f75..457bc61e05 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -8994,7 +8994,7 @@ template constexpr bool operator==(const list& x, const list& y); template - constexpr @\placeholder{synth-three-way-result}@ operator<=>(const list& x, + constexpr @\exposid{synth-three-way-result}@ operator<=>(const list& x, @\itcorr@ const list& y); template From e4277b145b26bfb20f74a77bcaf5a12652637c82 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:02:53 +0800 Subject: [PATCH 10/17] [vector.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index 457bc61e05..57c00f8ae9 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -9787,7 +9787,7 @@ template constexpr bool operator==(const vector& x, const vector& y); template - constexpr @\placeholder{synth-three-way-result}@ operator<=>(const vector& x, + constexpr @\exposid{synth-three-way-result}@ operator<=>(const vector& x, @\itcorr@ const vector& y); template From ddc06d57540b603c4c233cffeef6612c07636dd0 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:03:14 +0800 Subject: [PATCH 11/17] [associative.map.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index 57c00f8ae9..d61d106d7d 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -11420,7 +11420,7 @@ constexpr bool operator==(const map& x, const map& y); template - constexpr @\placeholder{synth-three-way-result}@> + constexpr @\exposid{synth-three-way-result}@> operator<=>(const map& x, const map& y); @@ -11443,7 +11443,7 @@ constexpr bool operator==(const multimap& x, const multimap& y); template - constexpr @\placeholder{synth-three-way-result}@> + constexpr @\exposid{synth-three-way-result}@> operator<=>(const multimap& x, const multimap& y); From 4b0d65166eaaaefb86bbb34fc359ded2241db6a2 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:03:40 +0800 Subject: [PATCH 12/17] [associative.set.syn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index d61d106d7d..ad1833ecc1 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -12585,7 +12585,7 @@ constexpr bool operator==(const set& x, const set& y); template - constexpr @\placeholder{synth-three-way-result}@ operator<=>(const set& x, + constexpr @\exposid{synth-three-way-result}@ operator<=>(const set& x, @\itcorr@ const set& y); template @@ -12606,7 +12606,7 @@ constexpr bool operator==(const multiset& x, const multiset& y); template - constexpr @\placeholder{synth-three-way-result}@ + constexpr @\exposid{synth-three-way-result}@ operator<=>(const multiset& x, const multiset& y); From 2ef792dca2a15b7cd9f5bfb2323666658b3ab671 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:04:26 +0800 Subject: [PATCH 13/17] [flat.set.defn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index ad1833ecc1..90ce44c23e 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -19099,7 +19099,7 @@ friend constexpr bool operator==(const flat_set& x, const flat_set& y); - friend constexpr @\placeholder{synth-three-way-result}@ + friend constexpr @\exposid{synth-three-way-result}@ operator<=>(const flat_set& x, const flat_set& y); friend constexpr void swap(flat_set& x, flat_set& y) noexcept { x.swap(y); } From 3d068e753ed85a80388f8c57407b25f627c63779 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:04:51 +0800 Subject: [PATCH 14/17] [flat.multiset.defn] Use `\exposid` for `synth-three-way-result` --- source/containers.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index 90ce44c23e..a1a2dd15f9 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -19770,7 +19770,7 @@ friend constexpr bool operator==(const flat_multiset& x, const flat_multiset& y); - friend @\placeholder{synth-three-way-result}@ + friend @\exposid{synth-three-way-result}@ constexpr operator<=>(const flat_multiset& x, const flat_multiset& y); friend constexpr void swap(flat_multiset& x, flat_multiset& y) noexcept From 56b3557db66817e0e7ae4c56f3aac02e6b99bc1a Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:05:25 +0800 Subject: [PATCH 15/17] [range.all.general] Use `\exposidnc` for `decay-copy` --- source/ranges.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ranges.tex b/source/ranges.tex index 2a606adfea..bf9ec4c48a 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -4510,7 +4510,7 @@ Given a subexpression \tcode{E}, the expression \tcode{views::all(E)} is expression-equivalent to: \begin{itemize} -\item \tcode{\placeholdernc{decay-copy}(E)} if the decayed type of \tcode{E} +\item \tcode{\exposidnc{decay-copy}(E)} if the decayed type of \tcode{E} models \libconcept{view}. \item Otherwise, \tcode{ref_view\{E\}} if that expression is well-formed. From 76f1d0c83c1a74b27b7a2b6972e9a90122233eee Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:06:01 +0800 Subject: [PATCH 16/17] [range.take.overview] Use `\exposidnc` for `decay-copy` --- source/ranges.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ranges.tex b/source/ranges.tex index bf9ec4c48a..82d323e7c4 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -5891,7 +5891,7 @@ \item If \tcode{T} is a specialization of \tcode{empty_view}\iref{range.empty.view}, -then \tcode{((void)F, \placeholdernc{decay-copy}(E))}, +then \tcode{((void)F, \exposidnc{decay-copy}(E))}, except that the evaluations of \tcode{E} and \tcode{F} are indeterminately sequenced. From 2abc7b14e9ff8fcf7876a6a3274466ecbcefce22 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 22 Aug 2025 11:06:30 +0800 Subject: [PATCH 17/17] [range.drop.overview] Use `\exposidnc` for `decay-copy` --- source/ranges.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ranges.tex b/source/ranges.tex index 82d323e7c4..784b38936b 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -6374,7 +6374,7 @@ \item If \tcode{T} is a specialization of \tcode{empty_view}\iref{range.empty.view}, -then \tcode{((void)F, \placeholdernc{decay-copy}(E))}, +then \tcode{((void)F, \exposidnc{decay-copy}(E))}, except that the evaluations of \tcode{E} and \tcode{F} are indeterminately sequenced. @@ -6417,7 +6417,7 @@ \end{codeblock} except that \tcode{E} is evaluated only once; \item -otherwise, \tcode{((void)F, \placeholdernc{decay-copy}(E))}, +otherwise, \tcode{((void)F, \exposidnc{decay-copy}(E))}, except that the evaluations of \tcode{E} and \tcode{F} are indeterminately sequenced. \end{itemize}