diff --git a/reference/concepts/Invoke.md b/reference/concepts/Invoke.md index 682d748204..904dd091c5 100644 --- a/reference/concepts/Invoke.md +++ b/reference/concepts/Invoke.md @@ -63,7 +63,7 @@ C++における関数呼び出しという性質を抽象化しまとめた、 ## 要件(C++23差分) C++20 における 2. について、次の文言を項目の最後に追加する。この変更は、`R`が参照かつ*INVOKE*の実行結果が`R`に束縛されることで寿命が延長される場合にダングリング参照が作成されてしまう事例を検出するための要件である。 -- [`reference_­converts_­from_­temporary_­v`](/reference/type_traits/reference_converts_from_temporary.md)` == true`の場合、*INVOKE*`(f, t1, t2, …, tN)`は不適格。 +- [`reference_converts_from_temporary_v`](/reference/type_traits/reference_converts_from_temporary.md)` == true`の場合、*INVOKE*`(f, t1, t2, …, tN)`は不適格。 ## まとめ diff --git a/reference/ranges/simple-view.md b/reference/ranges/simple-view.md index 7b2c01bbde..d31987cb29 100644 --- a/reference/ranges/simple-view.md +++ b/reference/ranges/simple-view.md @@ -7,8 +7,8 @@ template concept simple-view = // 説明専用コンセプト view && range && - same_­as, iterator_t> && - same_­as, sentinel_t>; + same_as, iterator_t> && + same_as, sentinel_t>; ``` * same-as[link /reference/concepts/same_as.md] * view[link view.md] diff --git a/reference/tuple/make_from_tuple.md b/reference/tuple/make_from_tuple.md index e175fecd83..f4028bfcf4 100644 --- a/reference/tuple/make_from_tuple.md +++ b/reference/tuple/make_from_tuple.md @@ -26,7 +26,7 @@ namespace std { また、型`T`の初期化はそのコンストラクタで行われ集成体初期化は考慮されない。つまり、`Tuple`に含まれる型が空かただ一つの`T`でない場合、型`T`は集成体(aggregate)であってはならない(C++17のみ、C++20以降はok)。 更に、C++23以降は`make_from_tuple`の返り値が参照である場合でダングリング参照を生成しないために、`make_from_tuple`の内部で`T`が構築される際に、`Tuple`から取得されるオブジェクト(参照の初期化であるので、`Tuple`のサイズは1である必要がある)の寿命が延長されないことも要求され、これを満たさない場合はコンパイルエラーとなる。 -正確には、[`tuple_­size_­v`](tuple_size.md)`<`[`remove_­reference_­t`](/reference/type_traits/remove_reference.md)`> == 1`である場合、[`reference_­constructs_­from_­temporary_­v`](/reference/type_traits/reference_constructs_from_temporary.md)`(`[`declval`](/reference/utility/declval.md)`()))> == false`であること。 +正確には、[`tuple_size_v`](tuple_size.md)`<`[`remove_reference_t`](/reference/type_traits/remove_reference.md)`> == 1`である場合、[`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`(`[`declval`](/reference/utility/declval.md)`()))> == false`であること。 ## 引数 - `t` -- [`tuple-like`](tuple-like.md)な型`Tuple`のオブジェクト diff --git a/reference/tuple/pair-like.md b/reference/tuple/pair-like.md index 7a15efbca0..3cf2baf921 100644 --- a/reference/tuple/pair-like.md +++ b/reference/tuple/pair-like.md @@ -11,7 +11,7 @@ namespace std { template concept pair-like = // 説明専用コンセプト !is_reference_v && requires(T t) { - typename tuple_size::type; // tuple_­size が完全型であることを明確にする + typename tuple_size::type; // tuple_size が完全型であることを明確にする requires derived_from, integral_constant>; typename tuple_element_t<0, remove_const_t>; typename tuple_element_t<1, remove_const_t>; diff --git a/reference/tuple/tuple/basic_common_reference.md b/reference/tuple/tuple/basic_common_reference.md index 637303d803..8d0fd167b3 100644 --- a/reference/tuple/tuple/basic_common_reference.md +++ b/reference/tuple/tuple/basic_common_reference.md @@ -21,16 +21,16 @@ template, UQual>...>`によって得られた型をメンバ型`type`として定義する。 +[`tuple`](../tuple.md)`<`[`common_reference_t`](/reference/type_traits/common_reference.md)`, UQual>...>`によって得られた型をメンバ型`type`として定義する。 ## 要件 - `TTuple`か`UTuple`のどちらかが[`tuple`](../tuple.md)の特殊化であること。 -- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_­same_­v`](/reference/type_traits/is_same.md)`>`であること。 +- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_same_v`](/reference/type_traits/is_same.md)`>`であること。 - 実質的には`TTuple`と`Utuple`について、参照型ではなく、最上位の`const`/`volatile`修飾も持っていないこと要求する。 - `TTuple`と`UTuple`の要素数が一致していること。 - - 具体的には、[`tuple_­size_­v`](../tuple_size.md)` ==` [`tuple_­size_­v`](../tuple_size.md)``であること。 -- [`tuple`](../tuple.md)`<`[`common_­reference_­t`](/reference/type_traits/common_reference.md)`, UQual>...>`が正しく型を表すこと。 + - 具体的には、[`tuple_size_v`](../tuple_size.md)` ==` [`tuple_size_v`](../tuple_size.md)``であること。 +- [`tuple`](../tuple.md)`<`[`common_reference_t`](/reference/type_traits/common_reference.md)`, UQual>...>`が正しく型を表すこと。 ## バージョン diff --git a/reference/tuple/tuple/common_type.md b/reference/tuple/tuple/common_type.md index b8ffd1e735..f6d8d89022 100644 --- a/reference/tuple/tuple/common_type.md +++ b/reference/tuple/tuple/common_type.md @@ -18,16 +18,16 @@ namespace std { ## 効果 -[`tuple`](../tuple.md)`<`[`common_­type_­t`](/reference/type_traits/common_type.md)`...>`によって得られた型をメンバ型`type`として定義する。 +[`tuple`](../tuple.md)`<`[`common_type_t`](/reference/type_traits/common_type.md)`...>`によって得られた型をメンバ型`type`として定義する。 ## 備考 - `TTuple`か`UTuple`のどちらかが[`tuple`](../tuple.md)の特殊化であること。 -- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_­same_­v`](/reference/type_traits/is_same.md)`>`であること。 +- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_same_v`](/reference/type_traits/is_same.md)`>`であること。 - 実質的には`TTuple`と`Utuple`について、参照型ではなく、最上位の`const`/`volatile`修飾も持っていないこと要求する。 - `TTuple`と`UTuple`の要素数が一致していること。 - - 具体的には、[`tuple_­size_­v`](../tuple_size.md)` ==` [`tuple_­size_­v`](../tuple_size.md)``であること。 -- [`tuple`](../tuple.md)`<`[`common_­type_­t`](/reference/type_traits/common_type.md)`...>`が正しく型を表すこと。 + - 具体的には、[`tuple_size_v`](../tuple_size.md)` ==` [`tuple_size_v`](../tuple_size.md)``であること。 +- [`tuple`](../tuple.md)`<`[`common_type_t`](/reference/type_traits/common_type.md)`...>`が正しく型を表すこと。 ## バージョン diff --git a/reference/tuple/tuple/op_assign.md b/reference/tuple/tuple/op_assign.md index 67c8ba00a1..23b54f8aac 100644 --- a/reference/tuple/tuple/op_assign.md +++ b/reference/tuple/tuple/op_assign.md @@ -84,23 +84,23 @@ constexpr const tuple& operator=(UTuple&&) const; // (14) C++23 - (1) : 全ての`i`について、[`is_copy_assignable`](/reference/type_traits/is_copy_assignable.md)`::value == true`であること - (2) : C++23 : 全ての`i`について、[`is_copy_assignable_v`](/reference/type_traits/is_copy_assignable.md)` == true`であること - (3) : 全ての`i`について、[`is_move_assignable`](/reference/type_traits/is_move_assignable.md)`::value == true`であること -- (4) : C++23 : 全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)` == true`であること +- (4) : C++23 : 全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)` == true`であること - (5) : 要素数が同じかつ、パラメータの[`tuple`](../tuple.md)の全ての要素型が、元の[`tuple`](../tuple.md)の全ての要素型にコピー代入可能であること -- (6) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)` == true`であること +- (6) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)` == true`であること - (7) : 要素数が同じかつ、パラメータの[`tuple`](../tuple.md)の全ての要素型が、元の[`tuple`](../tuple.md)の全ての要素型にムーブ代入可能であること -- (8) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)` = true`であること +- (8) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)` = true`であること - (9) : 元の[`tuple`](../tuple.md)の要素数が2であり、パラメータの[`pair`](/reference/utility/pair.md)の全ての要素型が元の[`tuple`](../tuple.md)の全ての要素型にコピー代入可能であること -- (10) : C++23 : 元の[`tuple`](../tuple.md)の要素数が2であり、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)` &&` [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)``であること +- (10) : C++23 : 元の[`tuple`](../tuple.md)の要素数が2であり、[`is_assignable_v`](/reference/type_traits/is_assignable.md)` &&` [`is_assignable_v`](/reference/type_traits/is_assignable.md)``であること - (11) : 元の[`tuple`](../tuple.md)の要素型が2であり、パラメータの[`pair`](/reference/utility/pair.md)の全ての要素型が元の[`tuple`](../tuple.md)の全ての要素型にムーブ代入可能であること -- (12) : C++23 : 元の[`tuple`](../tuple.md)の要素数が2であり、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)` &&` [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)``であること +- (12) : C++23 : 元の[`tuple`](../tuple.md)の要素数が2であり、[`is_assignable_v`](/reference/type_traits/is_assignable.md)` &&` [`is_assignable_v`](/reference/type_traits/is_assignable.md)``であること - (13) : 要素数が同じかつ、次を全て満たすこと - C++23 : [`different-from`](/reference/ranges/different-from.md)`` - - C++23 : [`remove_­cvref_­t`](/reference/type_traits/remove_cvref.md)``が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと - - C++23 : 全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`(u)))>` + - C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと + - C++23 : 全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`(u)))>` - (14) : 要素数が同じかつ、次をすべて満たすこと - C++23 : [`different-from`](/reference/ranges/different-from.md)`` - - C++23 : [`remove_­cvref_­t`](/reference/type_traits/remove_cvref.md)``が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと - - C++23 : [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`(u)))>` + - C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと + - C++23 : [`is_assignable_v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`(u)))>` ## 例外 diff --git a/reference/tuple/tuple/op_compare_3way.md b/reference/tuple/tuple/op_compare_3way.md index 91e768b7e4..1a6c4b76a5 100644 --- a/reference/tuple/tuple/op_compare_3way.md +++ b/reference/tuple/tuple/op_compare_3way.md @@ -15,8 +15,8 @@ namespace std { operator<=>(const tuple& t, const UTuple& u); // (2) C++23 // (2) の Elems は 型パラメータパック - // tuple_­element_­t<0, UTuple>, tuple_­element_­t<1, UTuple>, ..., - // tuple_­element_­t - 1, UTuple> + // tuple_element_t<0, UTuple>, tuple_element_t<1, UTuple>, ..., + // tuple_element_t - 1, UTuple> // を表す。 } ``` @@ -24,8 +24,8 @@ namespace std { * common_comparison_category_t[link /reference/compare/common_comparison_category.md] * synth-three-way-result[link /reference/exposition-only/synth-three-way-result.md] * tuple-like[link ../tuple-like.md] -* tuple_­element_­t[link ../tuple_element.md] -* tuple_­size_­v[link ../tuple_size.md] +* tuple_element_t[link ../tuple_element.md] +* tuple_size_v[link ../tuple_size.md] ## 概要 2つの[`tuple`](../tuple.md)オブジェクトの三方比較を行う。また、[`tuple-like`](../tuple-like.md)なオブジェクトとの三方比較を行う。(C++23以降) diff --git a/reference/tuple/tuple/op_constructor.md b/reference/tuple/tuple/op_constructor.md index 69b191ee40..2bf4e9eeb6 100644 --- a/reference/tuple/tuple/op_constructor.md +++ b/reference/tuple/tuple/op_constructor.md @@ -260,18 +260,18 @@ explicit(see below) constexpr - C++20まで : `Types...`の全ての型`Ti`と、`UTypes...`の全ての型`Ui`について、[`is_constructible`](/reference/type_traits/is_constructible.md)`::value == true`であること - C++17 : `sizeof...(Types) >= 1`であること - C++23 : `disambiguating-constraint`を次のように定義して、 - - `sizeof...(Types) == 1`の時、[`negation`](/reference/type_traits/negation.md)`<`[`is_­same`](/reference/type_traits/is_same.md)`<`[`remove_­cvref_­t`](/reference/type_traits/remove_cvref.md)`,` [`tuple`](../tuple.md)`>>` - - `sizeof...(Types) == 2 || sizeof...(Types) == 3`の時、[`bool_­constant`](/reference/type_traits/bool_constant.md)`,` [`allocator_­arg_­t`](/reference/memory/allocator_arg_t.md)`> ||` [`is_­same_­v`](/reference/type_traits/is_same.md)`<`[`remove_­cvref_­t`](/reference/type_traits/remove_cvref.md)`,` [`allocator_­arg_­t`](/reference/memory/allocator_arg_t.md)`>>` + - `sizeof...(Types) == 1`の時、[`negation`](/reference/type_traits/negation.md)`<`[`is_same`](/reference/type_traits/is_same.md)`<`[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`,` [`tuple`](../tuple.md)`>>` + - `sizeof...(Types) == 2 || sizeof...(Types) == 3`の時、[`bool_constant`](/reference/type_traits/bool_constant.md)`,` [`allocator_arg_t`](/reference/memory/allocator_arg_t.md)`> ||` [`is_same_v`](/reference/type_traits/is_same.md)`<`[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`,` [`allocator_arg_t`](/reference/memory/allocator_arg_t.md)`>>` - 以上に該当しなければ、[`true_type`](/reference/type_traits/true_type.md) - - C++23 : [`conjunction_­v`](/reference/type_traits/conjunction.md)`...>`であること + - C++23 : [`conjunction_v`](/reference/type_traits/conjunction.md)`...>`であること - (4), (18) : - `Types...`の全ての型`Ti`について、[`is_copy_constructible`](/reference/type_traits/is_copy_constructible.md)`::value == true`であること - (5), (19) : - `Types...`の全ての型`Ti`について、[`is_move_constructible`](/reference/type_traits/is_move_constructible.md)`::value == true`であること - (6)-(9), (20)-(23) : - - `I`をパラメータパック`0, 1, ..., (sizeof...(Types) - 1)`、`FWD(u)`を`static_­cast(u)`、`sizeof...(Types) == 1`の場合は、`Types...`を`T`へ、`UTypes...`を`U`へ展開したと定義して - - C++23 : `sizeof...(Types) == sizeof...(UTypes) && (`[`is_­constructible_­v`](/reference/type_traits/is_constructible.md)`(FWD(u)))> && ...) == true`であること - - C++23 : 更に、`sizeof...(Types) != 1`または、[`is_­convertible_v­`](/reference/type_traits/is_convertible.md)` == false &&` [`is_­constructible_­v`](/reference/type_traits/is_constructible.md)` == false &&` [`is_­same_­v`](/reference/type_traits/is_same.md)` == false`であること + - `I`をパラメータパック`0, 1, ..., (sizeof...(Types) - 1)`、`FWD(u)`を`static_cast(u)`、`sizeof...(Types) == 1`の場合は、`Types...`を`T`へ、`UTypes...`を`U`へ展開したと定義して + - C++23 : `sizeof...(Types) == sizeof...(UTypes) && (`[`is_constructible_v`](/reference/type_traits/is_constructible.md)`(FWD(u)))> && ...) == true`であること + - C++23 : 更に、`sizeof...(Types) != 1`または、[`is_convertible_v`](/reference/type_traits/is_convertible.md)` == false &&` [`is_constructible_v`](/reference/type_traits/is_constructible.md)` == false &&` [`is_same_v`](/reference/type_traits/is_same.md)` == false`であること - (7), (21) : - `sizeof...(Types) == sizeof...(UTypes)`であること - `Types...`の全ての型`Ti`と、`UTypes...`の全ての型`Ui`について、[`is_constructible`](/reference/type_traits/is_constructible.md)`::value == true`であること @@ -285,7 +285,7 @@ explicit(see below) constexpr - ムーブコンストラクタとのオーバーロードが成立することを意図している - C++23 : (6)-(9), (20)-(23) の定義参照 - (10)-(13), (24)-(27) : - - `FWD(u)`を`static_­cast(u)`、`Types...`の0番目の型を`T0`、1番目の型を`T1`であるとして、 + - `FWD(u)`を`static_cast(u)`、`Types...`の0番目の型を`T0`、1番目の型を`T1`であるとして、 - C++23 : `sizeof...(Types) == 2`であること - C++23 : [`is_constructible_v`](/reference/type_traits/is_constructible.md)`(FWD(u))) == true`であること - C++23 : [`is_constructible_v`](/reference/type_traits/is_constructible.md)`(FWD(u))) == true`であること @@ -304,8 +304,8 @@ explicit(see below) constexpr - C++23 : [`different-from`](/reference/ranges/different-from.md)``であること - C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと - C++23 : `sizeof...(Types) ==` [`tuple_size_v`](../tuple_size.md)`<`[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`>`であること - - C++23 : `(`[`is_­constructible_­v`](/reference/type_traits/is_constructible.md)`(`[`std​::​forward`](/reference/utility/forward.md)`(u)))> && ...) == true`であること - - C++23 : `sizeof...(Types) != 1`であるか、または`Types...`を`T`に展開したとして[`is_­convertible_­v`](/reference/type_traits/is_convertible.md)` == false &&` [`is_­constructible_­v`](/reference/type_traits/is_constructible.md)` == false`であること + - C++23 : `(`[`is_constructible_v`](/reference/type_traits/is_constructible.md)`(`[`std​::​forward`](/reference/utility/forward.md)`(u)))> && ...) == true`であること + - C++23 : `sizeof...(Types) != 1`であるか、または`Types...`を`T`に展開したとして[`is_convertible_v`](/reference/type_traits/is_convertible.md)` == false &&` [`is_constructible_v`](/reference/type_traits/is_constructible.md)` == false`であること ## 備考 @@ -319,7 +319,7 @@ explicit(see below) constexpr - C++17から : `!`[`conjunction_v`](/reference/type_traits/conjunction.md)`<`[`is_convertible`](/reference/type_traits/is_convertible.md)`...>`である場合、この関数は`explicit`となる - C++23から : `(`[`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)` || ...)`である場合、この関数は削除定義される - (6)-(9) : - - `I`をパラメータパック`0, 1, ..., (sizeof...(Types) - 1)`、`FWD(u)`を`static_­cast(u)`と定義して、 + - `I`をパラメータパック`0, 1, ..., (sizeof...(Types) - 1)`、`FWD(u)`を`static_cast(u)`と定義して、 - C++23 : `!(`[`is_convertible_v`](/reference/type_traits/is_convertible.md)`(FWD(u))), Types> && ...)`である場合、この関数は`explicit`となる - C++23 : `(`[`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(u)))> || ...)`である場合、この関数は削除定義される - (7) : @@ -329,7 +329,7 @@ explicit(see below) constexpr - C++17 : `!`[`conjunction_v`](/reference/type_traits/conjunction.md)`<`[`is_convertible`](/reference/type_traits/is_convertible.md)`...>`である場合、この関数は`explicit`となる - C++23 : (6)-(9) の定義参照 - (10)-(13) : - - `FWD(u)`を`static_­cast(u)`、`Types...`の0番目の型を`T0`、1番目の型を`T1`であるとして、 + - `FWD(u)`を`static_cast(u)`、`Types...`の0番目の型を`T0`、1番目の型を`T1`であるとして、 - C++23 : `!`[`is_convertible_v`](/reference/type_traits/is_convertible.md)`(FWD(u))), T0> ||!`[`is_convertible_v`](/reference/type_traits/is_convertible.md)`(FWD(u))), T1>`である場合、この関数は`explicit`となる - C++23 : [`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(u)))> ||` [`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(u)))>`である場合、この関数は削除定義される - (11) : diff --git a/reference/tuple/tuple/op_equal.md b/reference/tuple/tuple/op_equal.md index b0cb55f2f8..567726a2b3 100644 --- a/reference/tuple/tuple/op_equal.md +++ b/reference/tuple/tuple/op_equal.md @@ -31,7 +31,7 @@ namespace std { - 2つの[`tuple`](../tuple.md)オブジェクトの要素数が同じであること。(具体的には`sizeof...(TTypes) == sizeof...(UTypes)`であること。) - [`tuple`](../tuple.md)の要素`std::`[`get`](get.md)`(t)`と`std::`[`get`](get.md)`(u)`において、すべての要素の比較 `std::`[`get`](get.md)`(t) == std::`[`get`](get.md)`(u)` の比較結果が`bool`に変換可能な型(C++23 以降は[`boolean-testable`](/reference/concepts/boolean-testable.md)を満たせばよい)であること。 - (2) : - - C++23 : 2つの[`tuple-like`](../tuple-like.md)なオブジェクトの要素数が同じであること。(正確には、`sizeof...(TTypes) ==` [`tuple_­size_­v`](../tuple_size.md)``であること。) + - C++23 : 2つの[`tuple-like`](../tuple-like.md)なオブジェクトの要素数が同じであること。(正確には、`sizeof...(TTypes) ==` [`tuple_size_v`](../tuple_size.md)``であること。) - C++23 : [`tuple`](../tuple.md)の要素`std::`[`get`](get.md)`(t)`と[`tuple-like`](../tuple-like.md)なオブジェクトの要素`std::get(u)`において、すべての要素の比較 `std::`[`get`](get.md)`(t) == std::`[`get`](get.md)`(u)` の比較結果が[`boolean-testable`](/reference/concepts/boolean-testable.md)を満たす型(`bool`へ変換可能な型)であること。 diff --git a/reference/tuple/tuple_cat.md b/reference/tuple/tuple_cat.md index 1f7f18b28a..5827bea6e3 100644 --- a/reference/tuple/tuple_cat.md +++ b/reference/tuple/tuple_cat.md @@ -29,7 +29,7 @@ namespace std { - `Args...`の各型が左辺値参照であればコピー構築可能、そうでなければムーブ構築可能であること。 - C++23から : - 本関数の返り値の[`tuple`](tuple.md)のテンプレートパラメーターパックを`Ctypes`とし、`Ctypes`の全ての要素について、引数`tpls`において対応する要素の型から構築可能であること。 - - より厳密には、次のように定義を行い、`(`[`is_­constructible_v­`](/reference/type_traits/is_constructible.md)` && ...) == true`であること。 + - より厳密には、次のように定義を行い、`(`[`is_constructible_v`](/reference/type_traits/is_constructible.md)` && ...) == true`であること。 - `n`を`sizeof...(Tuples)`とし、`i`を範囲`[0, n)`における整数値とする - `T(i)`を`Tuples`の`i`番目とする - `U(i)`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md) とする diff --git a/reference/type_traits/is_invocable_r.md b/reference/type_traits/is_invocable_r.md index a5b907ce77..f32c28abaa 100644 --- a/reference/type_traits/is_invocable_r.md +++ b/reference/type_traits/is_invocable_r.md @@ -35,11 +35,11 @@ std::is_convertible_v, R> // C++23 std::is_convertible_v, R> && -std::reference_­converts_­from_­temporary_­v> == false +std::reference_converts_from_temporary_v> == false ``` * std::is_convertible_v[link is_convertible.md] * std::invoke_result_t[link invoke_result.md] -* std::reference_­converts_­from_­temporary_­v[link /reference/type_traits/reference_converts_from_temporary.md] +* std::reference_converts_from_temporary_v[link /reference/type_traits/reference_converts_from_temporary.md] ## 寿命の延長とダングリング参照 @@ -49,7 +49,7 @@ std::reference_­converts_­from_­temporary_­v diff --git a/reference/utility/pair/op_assign.md b/reference/utility/pair/op_assign.md index b7ec890c1e..9c1e433410 100644 --- a/reference/utility/pair/op_assign.md +++ b/reference/utility/pair/op_assign.md @@ -66,13 +66,13 @@ template - (9) : 次を全て満たすこと - C++23 : [`different-from`](/reference/ranges/different-from.md)`` - C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`

`が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと - - C++23 : [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` - - C++23 : [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` + - C++23 : [`is_assignable_v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` + - C++23 : [`is_assignable_v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` - (10) : 次を全て満たすこと - C++23 : [`different-from`](/reference/ranges/different-from.md)`` - C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`

`が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと - - C++23 : [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` - - C++23 : [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` + - C++23 : [`is_assignable_v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` + - C++23 : [`is_assignable_v`](/reference/type_traits/is_assignable.md)`(`[`std​::​forward`](/reference/utility/forward.md)`

(p)))>` ## 効果 diff --git a/reference/utility/pair/op_constructor.md b/reference/utility/pair/op_constructor.md index ad0ad1de44..84bb25ebcd 100644 --- a/reference/utility/pair/op_constructor.md +++ b/reference/utility/pair/op_constructor.md @@ -116,11 +116,11 @@ constexpr pair(piecewise_construct_t, - C++17 : `!`[`is_convertible_v`](/reference/type_traits/is_convertible.md)` || !`[`is_convertible_v`](/reference/type_traits/is_convertible.md)``である場合、`explicit`指定される - (5) : - C++17 : `!`[`is_convertible_v`](/reference/type_traits/is_convertible.md)` || !`[`is_convertible_v`](/reference/type_traits/is_convertible.md)``である場合、`explicit`指定される - - C++23 : [`reference_­constructs_­from_­temporary_­v`](/reference/type_traits/reference_constructs_from_temporary.md)` ||` [`reference_­constructs_­from_­temporary_­v`](/reference/type_traits/reference_constructs_from_temporary.md)``である場合、このコンストラクタは削除定義される + - C++23 : [`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)` ||` [`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)``である場合、このコンストラクタは削除定義される - (6)-(10) : - `FWD(u)`を`static_cast(u)`と定義して - C++23 : `!`[`is_convertible_v`](/reference/type_traits/is_convertible.md)`(FWD(p))), T1> || !`[`is_convertible_v`](/reference/type_traits/is_convertible.md)`(FWD(p))), T2>`である場合、`explicit`指定される - - C++23 : [`reference_­constructs_­from_­temporary_­v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(p)))> ||` [`reference_­constructs_­from_­temporary_­v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(p)))>`である場合、このコンストラクタは削除定義される + - C++23 : [`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(p)))> ||` [`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`(FWD(p)))>`である場合、このコンストラクタは削除定義される - (7) : - C++17 : `!`[`is_convertible_v`](/reference/type_traits/is_convertible.md)` || !`[`is_convertible_v`](/reference/type_traits/is_convertible.md)``である場合、`explicit`指定される - C++23 : (6)-(10) での定義参照