From 91b4bf8f7a1fb15010b348f3e1552491e01eb396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Mon, 4 Aug 2025 10:49:20 +0100 Subject: [PATCH 01/10] [alg.merge] Fix some misapplications of P3179R9. --- source/algorithms.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/algorithms.tex b/source/algorithms.tex index d40125348d..f5e194942d 100644 --- a/source/algorithms.tex +++ b/source/algorithms.tex @@ -10092,7 +10092,7 @@ $E(\tcode{e1}, \tcode{e1})$ be \tcode{bool(invoke(comp, invoke(proj2, e2), invoke(proj1, e1)))}; \item $K$ be the smallest integer in \range{0}{last1 - first1} - such that for every element \tcode{e1} in the position \tcode{first1 + $K$} + such that for the element \tcode{e1} in the position \tcode{first1 + $K$} there are at least $N - K$ elements \tcode{e2} in \range{first2}{last2} for which $E(\tcode{e1}, \tcode{e1})$ holds, and be equal to \tcode{last1 - first1} @@ -10128,7 +10128,7 @@ \tcode{result + $N$} for the overloads in namespace \tcode{std}. \item - \tcode{\{first1 + $K$, first2 + $N$ - $K$, result_last\}} + \tcode{\{first1 + $K$, first2 + $N$ - $K$, result + $N$\}} for the overloads in namespace \tcode{ranges}. \end{itemize} From 8ff31fafa7a3ec0d9ecc991cb3a98ce2abdd9574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 10:26:58 +0100 Subject: [PATCH 02/10] [memory.syn] Fixed misspelled "nothrow-sized-sentinel-for". This was a misapplication of P3179R9. --- source/memory.tex | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/source/memory.tex b/source/memory.tex index 4b3d168212..8ad74c9351 100644 --- a/source/memory.tex +++ b/source/memory.tex @@ -232,7 +232,8 @@ constexpr I uninitialized_default_construct_n(I first, // freestanding iter_difference_t n); - template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, @\exposconcept{nothrow-sentinel-for}@ S> + template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, + @\exposconcept{nothrow-sized-sentinel-for}@ S> requires @\libconcept{default_initializable}@> I uninitialized_default_construct(Ep&& exec, I first, S last); // freestanding-deleted, // see \ref{algorithms.parallel.overloads} @@ -276,7 +277,8 @@ constexpr I uninitialized_value_construct_n(I first, // freestanding iter_difference_t n); - template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, @\exposconcept{nothrow-sentinel-for}@ S> + template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, + @\exposconcept{nothrow-sized-sentinel-for}@ S> requires @\libconcept{default_initializable}@> I uninitialized_value_construct(Ep&& exec, I first, S last); // freestanding-deleted, // see \ref{algorithms.parallel.overloads} @@ -333,7 +335,7 @@ O ofirst, S olast); template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@ S1, - @\exposconcept{nothrow-random-access-iterator}@ O, @\exposconcept{nothrow-sentinel-for}@ S2> + @\exposconcept{nothrow-random-access-iterator}@ O, @\exposconcept{nothrow-sized-sentinel-for}@ S2> requires @\libconcept{constructible_from}@, iter_reference_t> uninitialized_copy_result uninitialized_copy(Ep&& exec, I ifirst, S1 ilast, // freestanding-deleted, @@ -345,7 +347,7 @@ uninitialized_copy(Ep&& exec, IR&& in_range, OR&& out_range); // freestanding-deleted, // see \ref{algorithms.parallel.overloads} template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\exposconcept{nothrow-random-access-iterator}@ O, - @\exposconcept{nothrow-sentinel-for}@ S> + @\exposconcept{nothrow-sized-sentinel-for}@ S> requires @\libconcept{constructible_from}@, iter_reference_t> uninitialized_copy_n_result uninitialized_copy_n(Ep&& exec, I ifirst, iter_difference_t n, // freestanding-deleted, @@ -395,7 +397,7 @@ O ofirst, S olast); template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@ S1, - @\exposconcept{nothrow-random-access-iterator}@ O, @\exposconcept{nothrow-sentinel-for}@ S2> + @\exposconcept{nothrow-random-access-iterator}@ O, @\exposconcept{nothrow-sized-sentinel-for}@ S2> requires @\libconcept{constructible_from}@, iter_rvalue_reference_t> uninitialized_move_result uninitialized_move(Ep&& exec, I ifirst, S1 ilast, // freestanding-deleted, @@ -408,7 +410,7 @@ // see \ref{algorithms.parallel.overloads} template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, - @\exposconcept{nothrow-random-access-iterator}@ O, @\exposconcept{nothrow-sentinel-for}@ S> + @\exposconcept{nothrow-random-access-iterator}@ O, @\exposconcept{nothrow-sized-sentinel-for}@ S> requires @\libconcept{constructible_from}@, iter_rvalue_reference_t> uninitialized_move_n_result uninitialized_move_n(Ep&& exec, I ifirst, iter_difference_t n, // freestanding-deleted, @@ -446,7 +448,7 @@ iter_difference_t n, const T& x); template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, - @\exposconcept{nothrow-sentinel-for}@ S, class T> + @\exposconcept{nothrow-sized-sentinel-for}@ S, class T> requires @\libconcept{constructible_from}@, const T&> I uninitialized_fill(Ep&& exec, I first, S last, const T& x); // freestanding-deleted, // see \ref{algorithms.parallel.overloads} @@ -502,7 +504,8 @@ requires @\libconcept{destructible}@> constexpr I destroy_n(I first, iter_difference_t n) noexcept; // freestanding - template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, @\exposconcept{nothrow-sentinel-for}@ S> + template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{nothrow-random-access-iterator}@ I, + @\exposconcept{nothrow-sized-sentinel-for}@ S> requires @\libconcept{destructible}@> I destroy(Ep&& exec, I first, S last) noexcept; // freestanding-deleted, // see \ref{algorithms.parallel.overloads} From e534fb2676e191b4396184abd81e9882f4437e7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 10:30:31 +0100 Subject: [PATCH 03/10] [special.mem.concepts] Fixed misspelled "sized_sentinel_for". This was a misapplication of P3179R9. --- source/algorithms.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/algorithms.tex b/source/algorithms.tex index f5e194942d..c9ab8d9d3c 100644 --- a/source/algorithms.tex +++ b/source/algorithms.tex @@ -13593,7 +13593,7 @@ template concept @\defexposconcept{nothrow-sized-sentinel-for}@ = // \expos @\exposconcept{nothrow-sentinel-for}@ && - @\libconcept{sentinel_for}@; + @\libconcept{sized_sentinel_for}@; \end{itemdecl} \begin{itemdescr} From c4dd6c83ead14c0081e3009019308c93d5dba55e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:29:06 +0100 Subject: [PATCH 04/10] [exec.sysctxrepl.psb] Fix typo in range expression A misapplication of P2079R10. --- source/exec.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/exec.tex b/source/exec.tex index 92c01d1fbc..058038eff0 100644 --- a/source/exec.tex +++ b/source/exec.tex @@ -8608,7 +8608,7 @@ \end{itemize} \item If \tcode{r.execute(b, e)} is called, -then \tcode{b} and \tcode{e} are in the range \range{0}{n} and +then \tcode{b} and \tcode{e} are in the range \crange{0}{n} and $\tcode{b} < \tcode{e}$. \item For each $i$ in \range{0}{n}, From f7361435f9909fd260b775a6346c068d50234d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:31:46 +0100 Subject: [PATCH 05/10] [meta.syn] Fix typo "type_underlying_type" => "underlying_type" This was an error in P2996R13. --- source/meta.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/meta.tex b/source/meta.tex index 81df5dfe7d..d5eb0fa300 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -3266,7 +3266,7 @@ consteval info common_type(R&& type_args); template<@\libconcept{reflection_range}@ R = initializer_list> consteval info common_reference(R&& type_args); - consteval info type_underlying_type(info type); + consteval info underlying_type(info type); template<@\libconcept{reflection_range}@ R = initializer_list> consteval info invoke_result(info type, R&& type_args); consteval info unwrap_reference(info type); From 40101948e00579dd6d551d5383303f37cf1eb9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:34:08 +0100 Subject: [PATCH 06/10] [tab:meta.reflection.operators] Fix another operator spelling Similar to 746811a19a222ffb5e9d03008d752bcb10967ce3, which missed this one. --- source/meta.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/meta.tex b/source/meta.tex index d5eb0fa300..c0627982f0 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -3612,7 +3612,7 @@ \tcode{op_slash_equals} & \tcode{operator/=} & \tcode{/=} \\ \rowsep \tcode{op_percent_equals} & \tcode{operator\%=} & \tcode{\%=} \\ \rowsep \tcode{op_caret_equals} & \tcode{operator\caret=} & \tcode{\caret=} \\ \rowsep -\tcode{op_ampersand_equals} & \tcode{operator\&=} & \tcode{\&} \\ \rowsep +\tcode{op_ampersand_equals} & \tcode{operator\&=} & \tcode{\&=} \\ \rowsep \tcode{op_pipe_equals} & \tcode{operator|=} & \tcode{|=} \\ \rowsep \tcode{op_equals_equals} & \tcode{operator==} & \tcode{==} \\ \rowsep \tcode{op_exclamation_equals} & \tcode{operator!=} & \tcode{!=} \\ \rowsep From ed5362ea20c80d18be106549267a93dba3b3a7c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:37:59 +0100 Subject: [PATCH 07/10] [meta.reflection.queries] Fix "r" that should be "T". This is a follow-up to 2567873ea47b7f888f45aa4e8264c9cd3310183d, which fixed a missing paragraph, but forgot to make this change. --- source/meta.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/meta.tex b/source/meta.tex index c0627982f0..7702ca8473 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -4245,7 +4245,7 @@ \pnum \returns -\tcode{true} if \tcode{r} represents a const or volatile type, respectively, +\tcode{true} if \tcode{T} represents a const or volatile type, respectively, or a const- or volatile-qualified function type, respectively. Otherwise, \tcode{false}. \end{itemdescr} From 28c495bef17c305fb8ef6f56b88ae11c6115ccf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:42:24 +0100 Subject: [PATCH 08/10] [meta.reflection.access.context] Fix mistaken qualifier A misapplication of P2079R10. --- source/meta.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/meta.tex b/source/meta.tex index 7702ca8473..0623501fbe 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -5222,7 +5222,7 @@ \end{itemdescr} \begin{itemdecl} -static consteval access_context @\libmember{via}{access_context}@(info cls) noexcept; +static consteval access_context @\libmember{via}{access_context}@(info cls) const; \end{itemdecl} \begin{itemdescr} From 895e938cfb55d729d016086551f4472621d1722b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:46:50 +0100 Subject: [PATCH 09/10] [meta.reflection.extract] Reinstate "Constant When" wording from P2996R13 regarding similar and function pointer types I'm not sure if the mention of function pointer types was dropped in a misguided editorial simplification, but this is not an editorial change. (But we retain the cross-reference which was not in the paper.) --- source/meta.tex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/meta.tex b/source/meta.tex index 0623501fbe..ed218e76a8 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -5949,8 +5949,9 @@ \begin{itemize} \item \tcode{U} is a pointer type, - \tcode{T} and \tcode{U} are similar types\iref{conv.qual}, and - \tcode{is_convertible_v<\brk{}U, T>} is \tcode{true}, + \tcode{T} and \tcode{U} are either similar\iref{conv.qual} + or both function pointer types, and + \tcode{is_convertible_v} is \tcode{true}, \item \tcode{U} is not a pointer type and the cv-unqualified types of \tcode{T} and \tcode{U} are the same, From c3bd02a2e44c53c8fe7ba5b48a94bacc9186235d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 5 Aug 2025 12:55:17 +0100 Subject: [PATCH 10/10] [meta.reflection.result] Fix function parameter name A misapplication of P2996R13. --- source/meta.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/meta.tex b/source/meta.tex index ed218e76a8..08347e9506 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -6183,7 +6183,7 @@ \indexlibraryglobal{reflect_function}% \begin{itemdecl} template - consteval info reflect_function(T& expr); + consteval info reflect_function(T& fn); \end{itemdecl} \begin{itemdescr} @@ -6198,7 +6198,7 @@ \pnum \throws \tcode{meta::exception} unless -\tcode{expr} is suitable for use as a constant template argument +\tcode{fn} is suitable for use as a constant template argument for a constant template parameter of type \tcode{T\&}\iref{temp.arg.nontype}. \end{itemdescr} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy