From 0ae101c157259c6b00de7a819f1e2c639b8d9135 Mon Sep 17 00:00:00 2001 From: Barry Revzin Date: Sat, 13 Jan 2024 17:05:03 -0600 Subject: [PATCH] Rephrasing in terms of signature --- 2996_reflection/p2996r2.html | 14 +++++++------- 2996_reflection/reflection.md | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/2996_reflection/p2996r2.html b/2996_reflection/p2996r2.html index 0175a9e7..6b0f5da4 100644 --- a/2996_reflection/p2996r2.html +++ b/2996_reflection/p2996r2.html @@ -2151,9 +2151,9 @@

5.2.3.3 [meta.reflection.unary.prop] Type properties

-

1 For any type T, for each function std::meta::UNARY-TRAIT defined in this clause which takes a single argument of type std::meta::info, std::meta::UNARY-TRAIT(^T) equals the value of the corresponding type property std::UNARY-TRAIT_v<T> as specified in 21.3.5.4 [meta.unary.prop].

-

2 For any types T and U, for each function std::meta::BINARY-TRAIT defined in this clause which takes two arguments of type std::meta::info, std::meta::BINARY-TRAIT(^T, ^U) equals the value of the corresponding type property std::BINARY-TRAIT_v<T, U> as specified in 21.3.5.4 [meta.unary.prop].

-

3 For any type T and pack of types U..., for each function std::meta::VARIADIC-TRAIT defined in this clause which takes one argument of type std::meta::info and one argument of type std::span<const std::meta::info>, std::meta::VARIADIC-TRAIT(^T, {^U...}) equals the value of the corresponding type property std::VARIADIC-TRAIT_v<T, U...> as specified in 21.3.5.4 [meta.unary.prop].

+

1 For any type T, for each function std::meta::UNARY-TRAIT defined in this clause with signature bool(std::meta::info), std::meta::UNARY-TRAIT(^T) equals the value of the corresponding type property std::UNARY-TRAIT_v<T> as specified in 21.3.5.4 [meta.unary.prop].

+

2 For any types T and U, for each function std::meta::BINARY-TRAIT defined in this clause with signature bool(std::meta::info, std::meta::info), std::meta::BINARY-TRAIT(^T, ^U) equals the value of the corresponding type property std::BINARY-TRAIT_v<T, U> as specified in 21.3.5.4 [meta.unary.prop].

+

3 For any type T and pack of types U..., for each function std::meta::VARIADIC-TRAIT defined in this clause with signature bool(std::meta::info, std::span<const std::meta::info>), std::meta::VARIADIC-TRAIT(^T, {^U...}) equals the value of the corresponding type property std::VARIADIC-TRAIT_v<T, U...> as specified in 21.3.5.4 [meta.unary.prop].

consteval bool is_const(info type);
 consteval bool is_volatile(info type);
 consteval bool is_trivial(info type);
@@ -2221,7 +2221,7 @@ 

5.2.3.4 [meta.reflection.unary.prop.query] Type property queries

-

1 For any type T, for each function std::meta::PROP defined in this clause which takes a single argument of type std::meta::info, std::meta::PROP(^T) equals the value of the corresponding type property std::PROP_v<T> as specified in 21.3.6 [meta.unary.prop.query].

+

1 For any type T, for each function std::meta::PROP defined in this clause with signature size_t(std::meta::info), std::meta::PROP(^T) equals the value of the corresponding type property std::PROP_v<T> as specified in 21.3.6 [meta.unary.prop.query].

2 For any type T and unsigned integer value I, std::meta::extent(^T, I) equals std::extent_v<T, I> ([meta.unary.prop.query]).

consteval size_t alignment_of(info type);
 consteval size_t rank(info type);
@@ -2231,9 +2231,9 @@ 

5.2.3.5 [meta.reflection.rel], Type relations

-

1 For any types T and U, for each function std::meta::REL defined in this clause which takes a two arguments of type std::meta::info, std::meta::REL(^T, ^U) equals the value of the corresponding type relation std::REL_v<T, U> as specified in 21.3.7 [meta.rel].

-

2 For any type T and pack of types U..., for each function std::meta::VARIADIC-REL defined in this clause which takes arguments of type std::meta::info and std::span<const std::meta::info>, std::meta::VARIADIC-REL(^T, {^U...}) equals the value of the corresponding type relation std::VARIADIC-REL_v<T, U...> as specified in 21.3.7 [meta.rel].

-

3 For any types T and R and pack of types U..., for each function std::meta::VARIADIC-REL-R defined in this clause which takes two arguments of type std::meta::info and one argument of type std::span<const std::meta::info>, std::meta::VARIADIC-REL-R(^R, ^T, {^U...}) equals the value of the corresponding type relation std::VARIADIC-REL-R_v<R, T, U...> as specified in 21.3.7 [meta.rel].

+

1 For any types T and U, for each function std::meta::REL defined in this clause with signature bool(std::meta::info, std::meta::info), std::meta::REL(^T, ^U) equals the value of the corresponding type relation std::REL_v<T, U> as specified in 21.3.7 [meta.rel].

+

2 For any type T and pack of types U..., for each function std::meta::VARIADIC-REL defined in this clause with signature bool(std::meta::info, std::span<const std::meta::info>), std::meta::VARIADIC-REL(^T, {^U...}) equals the value of the corresponding type relation std::VARIADIC-REL_v<T, U...> as specified in 21.3.7 [meta.rel].

+

3 For any types T and R and pack of types U..., for each function std::meta::VARIADIC-REL-R defined in this clause with signature bool(std::meta::info, std::meta::info, std::span<const std::meta::info>), std::meta::VARIADIC-REL-R(^R, ^T, {^U...}) equals the value of the corresponding type relation std::VARIADIC-REL-R_v<R, T, U...> as specified in 21.3.7 [meta.rel].

consteval bool is_same(info type1, info type2);
 consteval bool is_base_of(info base_type, info derived_type);
 consteval bool is_convertible(info src_type, info dst_type);
diff --git a/2996_reflection/reflection.md b/2996_reflection/reflection.md
index 5697a057..d6871c54 100644
--- a/2996_reflection/reflection.md
+++ b/2996_reflection/reflection.md
@@ -2000,11 +2000,11 @@ consteval bool is_member_pointer(info type);
 
 ::: bq
 ::: addu
-[1]{.pnum} For any type `T`, for each function `std::meta::$UNARY-TRAIT$` defined in this clause which takes a single argument of type `std::meta::info`, `std::meta::$UNARY-TRAIT$(^T)` equals the value of the corresponding type property `std::$UNARY-TRAIT$_v` as specified in [meta.unary.prop]{.sref}.
+[1]{.pnum} For any type `T`, for each function `std::meta::$UNARY-TRAIT$` defined in this clause with signature `bool(std::meta::info)`, `std::meta::$UNARY-TRAIT$(^T)` equals the value of the corresponding type property `std::$UNARY-TRAIT$_v` as specified in [meta.unary.prop]{.sref}.
 
-[#]{.pnum} For any types `T` and `U`, for each function `std::meta::$BINARY-TRAIT$` defined in this clause which takes two arguments of type `std::meta::info`, `std::meta::$BINARY-TRAIT$(^T, ^U)` equals the value of the corresponding type property `std::$BINARY-TRAIT$_v` as specified in [meta.unary.prop]{.sref}.
+[#]{.pnum} For any types `T` and `U`, for each function `std::meta::$BINARY-TRAIT$` defined in this clause with signature `bool(std::meta::info, std::meta::info)`, `std::meta::$BINARY-TRAIT$(^T, ^U)` equals the value of the corresponding type property `std::$BINARY-TRAIT$_v` as specified in [meta.unary.prop]{.sref}.
 
-[#]{.pnum} For any type `T` and pack of types `U...`, for each function `std::meta::$VARIADIC-TRAIT$` defined in this clause which takes one argument of type `std::meta::info` and one argument of type `std::span`, `std::meta::$VARIADIC-TRAIT$(^T, {^U...})` equals the value of the corresponding type property `std::$VARIADIC-TRAIT$_v` as specified in [meta.unary.prop]{.sref}.
+[#]{.pnum} For any type `T` and pack of types `U...`, for each function `std::meta::$VARIADIC-TRAIT$` defined in this clause with signature `bool(std::meta::info, std::span)`, `std::meta::$VARIADIC-TRAIT$(^T, {^U...})` equals the value of the corresponding type property `std::$VARIADIC-TRAIT$_v` as specified in [meta.unary.prop]{.sref}.
 
 ```cpp
 consteval bool is_const(info type);
@@ -2077,7 +2077,7 @@ consteval bool reference_converts_from_temporary(info dst_type, info src_type);
 
 ::: bq
 ::: addu
-[1]{.pnum} For any type `T`, for each function `std::meta::$PROP$` defined in this clause which takes a single argument of type `std::meta::info`, `std::meta::$PROP$(^T)` equals the value of the corresponding type property `std::$PROP$_v` as specified in [meta.unary.prop.query]{.sref}.
+[1]{.pnum} For any type `T`, for each function `std::meta::$PROP$` defined in this clause with signature `size_t(std::meta::info)`, `std::meta::$PROP$(^T)` equals the value of the corresponding type property `std::$PROP$_v` as specified in [meta.unary.prop.query]{.sref}.
 
 [#]{.pnum} For any type `T` and unsigned integer value `I`, `std::meta::extent(^T, I)` equals `std::extent_v` ([meta.unary.prop.query]).
 
@@ -2093,11 +2093,11 @@ consteval size_t extent(info type, unsigned i = 0);
 
 ::: bq
 ::: addu
-[1]{.pnum} For any types `T` and `U`, for each function `std::meta::$REL$` defined in this clause which takes a two arguments of type `std::meta::info`, `std::meta::$REL$(^T, ^U)` equals the value of the corresponding type relation `std::$REL$_v` as specified in [meta.rel]{.sref}.
+[1]{.pnum} For any types `T` and `U`, for each function `std::meta::$REL$` defined in this clause with signature `bool(std::meta::info, std::meta::info)`, `std::meta::$REL$(^T, ^U)` equals the value of the corresponding type relation `std::$REL$_v` as specified in [meta.rel]{.sref}.
 
-[#]{.pnum} For any type `T` and pack of types `U...`, for each function `std::meta::$VARIADIC-REL$` defined in this clause which takes arguments of type `std::meta::info` and `std::span`, `std::meta::$VARIADIC-REL$(^T, {^U...})` equals the value of the corresponding type relation `std::$VARIADIC-REL$_v` as specified in [meta.rel]{.sref}.
+[#]{.pnum} For any type `T` and pack of types `U...`, for each function `std::meta::$VARIADIC-REL$` defined in this clause with signature `bool(std::meta::info, std::span)`, `std::meta::$VARIADIC-REL$(^T, {^U...})` equals the value of the corresponding type relation `std::$VARIADIC-REL$_v` as specified in [meta.rel]{.sref}.
 
-[#]{.pnum} For any types `T` and `R` and pack of types `U...`, for each function `std::meta::$VARIADIC-REL-R$` defined in this clause which takes two arguments of type `std::meta::info` and one argument of type `std::span`, `std::meta::$VARIADIC-REL-R$(^R, ^T, {^U...})` equals the value of the corresponding type relation `std::$VARIADIC-REL-R$_v` as specified in [meta.rel]{.sref}.
+[#]{.pnum} For any types `T` and `R` and pack of types `U...`, for each function `std::meta::$VARIADIC-REL-R$` defined in this clause with signature `bool(std::meta::info, std::meta::info, std::span)`, `std::meta::$VARIADIC-REL-R$(^R, ^T, {^U...})` equals the value of the corresponding type relation `std::$VARIADIC-REL-R$_v` as specified in [meta.rel]{.sref}.
 
 ```cpp
 consteval bool is_same(info type1, info type2);