Skip to content

Commit

Permalink
ソフトハイフン除去
Browse files Browse the repository at this point in the history
  • Loading branch information
tomolatoon committed Feb 1, 2023
1 parent d9d912a commit 8cc4361
Show file tree
Hide file tree
Showing 14 changed files with 48 additions and 48 deletions.
2 changes: 1 addition & 1 deletion reference/concepts/Invoke.md
Expand Up @@ -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)`<R, decltype(`*INVOKE*`(f, t1, t2, …, tN))> == true`の場合、*INVOKE*`<R>(f, t1, t2, …, tN)`は不適格。
- [`reference_converts_from_temporary_v`](/reference/type_traits/reference_converts_from_temporary.md)`<R, decltype(`*INVOKE*`(f, t1, t2, …, tN))> == true`の場合、*INVOKE*`<R>(f, t1, t2, …, tN)`は不適格。


## まとめ
Expand Down
4 changes: 2 additions & 2 deletions reference/ranges/simple-view.md
Expand Up @@ -7,8 +7,8 @@
template<class R>
concept simple-view = // 説明専用コンセプト
view<R> && range<const R> &&
same_­as<iterator_t<R>, iterator_t<const R>> &&
same_­as<sentinel_t<R>, sentinel_t<const R>>;
same_as<iterator_t<R>, iterator_t<const R>> &&
same_as<sentinel_t<R>, sentinel_t<const R>>;
```
* same-as[link /reference/concepts/same_as.md]
* view[link view.md]
Expand Down
2 changes: 1 addition & 1 deletion reference/tuple/make_from_tuple.md
Expand Up @@ -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)`<Tuple>> == 1`である場合、[`reference_­constructs_­from_­temporary_­v`](/reference/type_traits/reference_constructs_from_temporary.md)`<T, decltype(get<0>(`[`declval`](/reference/utility/declval.md)`<Tuple>()))> == false`であること。
正確には、[`tuple_size_v`](tuple_size.md)`<`[`remove_reference_t`](/reference/type_traits/remove_reference.md)`<Tuple>> == 1`である場合、[`reference_constructs_from_temporary_v`](/reference/type_traits/reference_constructs_from_temporary.md)`<T, decltype(get<0>(`[`declval`](/reference/utility/declval.md)`<Tuple>()))> == false`であること。
## 引数
- `t` -- [`tuple-like`](tuple-like.md)な型`Tuple`のオブジェクト
Expand Down
2 changes: 1 addition & 1 deletion reference/tuple/pair-like.md
Expand Up @@ -11,7 +11,7 @@ namespace std {
template<class T>
concept pair-like = // 説明専用コンセプト
!is_reference_v<T> && requires(T t) {
typename tuple_size<T>::type; // tuple_­size<T> が完全型であることを明確にする
typename tuple_size<T>::type; // tuple_size<T> が完全型であることを明確にする
requires derived_from<tuple_size<T>, integral_constant<size_t, 2>>;
typename tuple_element_t<0, remove_const_t<T>>;
typename tuple_element_t<1, remove_const_t<T>>;
Expand Down
8 changes: 4 additions & 4 deletions reference/tuple/tuple/basic_common_reference.md
Expand Up @@ -21,16 +21,16 @@ template<tuple-like TTuple, tuple-like UTuple,
## 効果
[`tuple`](../tuple.md)`<`[`common_­reference_­t`](/reference/type_traits/common_reference.md)`<TQual<TTypes>, UQual<UTypes>>...>`によって得られた型をメンバ型`type`として定義する。
[`tuple`](../tuple.md)`<`[`common_reference_t`](/reference/type_traits/common_reference.md)`<TQual<TTypes>, UQual<UTypes>>...>`によって得られた型をメンバ型`type`として定義する。
## 要件
- `TTuple`か`UTuple`のどちらかが[`tuple`](../tuple.md)の特殊化であること。
- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_­same_­v`](/reference/type_traits/is_same.md)`<T, `[`decay_­t`](/reference/type_traits/decay.md)`<T>>`であること。
- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_same_v`](/reference/type_traits/is_same.md)`<T, `[`decay_t`](/reference/type_traits/decay.md)`<T>>`であること。
- 実質的には`TTuple`と`Utuple`について、参照型ではなく、最上位の`const`/`volatile`修飾も持っていないこと要求する。
- `TTuple`と`UTuple`の要素数が一致していること。
- 具体的には、[`tuple_­size_­v`](../tuple_size.md)`<TTuple> ==` [`tuple_­size_­v`](../tuple_size.md)`<UTuple>`であること。
- [`tuple`](../tuple.md)`<`[`common_­reference_­t`](/reference/type_traits/common_reference.md)`<TQual<TTypes>, UQual<UTypes>>...>`が正しく型を表すこと。
- 具体的には、[`tuple_size_v`](../tuple_size.md)`<TTuple> ==` [`tuple_size_v`](../tuple_size.md)`<UTuple>`であること。
- [`tuple`](../tuple.md)`<`[`common_reference_t`](/reference/type_traits/common_reference.md)`<TQual<TTypes>, UQual<UTypes>>...>`が正しく型を表すこと。
## バージョン
Expand Down
8 changes: 4 additions & 4 deletions reference/tuple/tuple/common_type.md
Expand Up @@ -18,16 +18,16 @@ namespace std {
## 効果
[`tuple`](../tuple.md)`<`[`common_­type_­t`](/reference/type_traits/common_type.md)`<TTypes, UTypes>...>`によって得られた型をメンバ型`type`として定義する。
[`tuple`](../tuple.md)`<`[`common_type_t`](/reference/type_traits/common_type.md)`<TTypes, UTypes>...>`によって得られた型をメンバ型`type`として定義する。
## 備考
- `TTuple`か`UTuple`のどちらかが[`tuple`](../tuple.md)の特殊化であること。
- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_­same_­v`](/reference/type_traits/is_same.md)`<T,` [`decay_­t`](/reference/type_traits/decay.md)`<T>>`であること。
- `TTuple`と`UTuple`のそれぞれについて、(次の`T`を置き換える形で)[`is_same_v`](/reference/type_traits/is_same.md)`<T,` [`decay_t`](/reference/type_traits/decay.md)`<T>>`であること。
- 実質的には`TTuple`と`Utuple`について、参照型ではなく、最上位の`const`/`volatile`修飾も持っていないこと要求する。
- `TTuple`と`UTuple`の要素数が一致していること。
- 具体的には、[`tuple_­size_­v`](../tuple_size.md)`<TTuple> ==` [`tuple_­size_­v`](../tuple_size.md)`<UTuple>`であること。
- [`tuple`](../tuple.md)`<`[`common_­type_­t`](/reference/type_traits/common_type.md)`<TTypes, UTypes>...>`が正しく型を表すこと。
- 具体的には、[`tuple_size_v`](../tuple_size.md)`<TTuple> ==` [`tuple_size_v`](../tuple_size.md)`<UTuple>`であること。
- [`tuple`](../tuple.md)`<`[`common_type_t`](/reference/type_traits/common_type.md)`<TTypes, UTypes>...>`が正しく型を表すこと。
## バージョン
Expand Down
18 changes: 9 additions & 9 deletions reference/tuple/tuple/op_assign.md
Expand Up @@ -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)`<Ti>::value == true`であること
- (2) : C++23 : 全ての`i`について、[`is_copy_assignable_v`](/reference/type_traits/is_copy_assignable.md)`<const Ti> == true`であること
- (3) : 全ての`i`について、[`is_move_assignable`](/reference/type_traits/is_move_assignable.md)`<Ti>::value == true`であること
- (4) : C++23 : 全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<const Ti&, Ti> == true`であること
- (4) : C++23 : 全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const Ti&, Ti> == true`であること
- (5) : 要素数が同じかつ、パラメータの[`tuple`](../tuple.md)の全ての要素型が、元の[`tuple`](../tuple.md)の全ての要素型にコピー代入可能であること
- (6) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<const Ti&, const Ui&> == true`であること
- (6) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const Ti&, const Ui&> == true`であること
- (7) : 要素数が同じかつ、パラメータの[`tuple`](../tuple.md)の全ての要素型が、元の[`tuple`](../tuple.md)の全ての要素型にムーブ代入可能であること
- (8) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<const Ti&, Ui> = true`であること
- (8) : C++23 : 要素数が同じかつ、全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const Ti&, Ui> = 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)`<const T0&, U1> &&` [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<const T1&, U2>`であること
- (10) : C++23 : 元の[`tuple`](../tuple.md)の要素数が2であり、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const T0&, U1> &&` [`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const T1&, U2>`であること
- (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)`<const T0&, U1> &&` [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<const T1&, U2>`であること
- (12) : C++23 : 元の[`tuple`](../tuple.md)の要素数が2であり、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const T0&, U1> &&` [`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const T1&, U2>`であること
- (13) : 要素数が同じかつ、次を全て満たすこと
- C++23 : [`different-from`](/reference/ranges/different-from.md)`<UTuple, tuple>`
- C++23 : [`remove_­cvref_­t`](/reference/type_traits/remove_cvref.md)`<UTuple>`が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと
- C++23 : 全ての`i`について、[`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<Ti&, decltype(get<i>(`[`std​::​forward`](/reference/utility/forward.md)`<UTuple>(u)))>`
- C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<UTuple>`が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと
- C++23 : 全ての`i`について、[`is_assignable_v`](/reference/type_traits/is_assignable.md)`<Ti&, decltype(get<i>(`[`std​::​forward`](/reference/utility/forward.md)`<UTuple>(u)))>`
- (14) : 要素数が同じかつ、次をすべて満たすこと
- C++23 : [`different-from`](/reference/ranges/different-from.md)`<UTuple, tuple>`
- C++23 : [`remove_­cvref_­t`](/reference/type_traits/remove_cvref.md)`<UTuple>`が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと
- C++23 : [`is_­assignable_­v`](/reference/type_traits/is_assignable.md)`<const Ti&, decltype(get<i>(`[`std​::​forward`](/reference/utility/forward.md)`<UTuple>(u)))>`
- C++23 : [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<UTuple>`が[`ranges::subrange`](/reference/ranges/subrange.md)の特殊化でないこと
- C++23 : [`is_assignable_v`](/reference/type_traits/is_assignable.md)`<const Ti&, decltype(get<i>(`[`std​::​forward`](/reference/utility/forward.md)`<UTuple>(u)))>`
## 例外
Expand Down
8 changes: 4 additions & 4 deletions reference/tuple/tuple/op_compare_3way.md
Expand Up @@ -15,17 +15,17 @@ namespace std {
operator<=>(const tuple<TTypes...>& t, const UTuple& u); // (2) C++23

// (2) の Elems は 型パラメータパック
// tuple_­element_­t<0, UTuple>, tuple_­element_­t<1, UTuple>, ...,
// tuple_­element_­t<tuple_­size_­v<UTuple> - 1, UTuple>
// tuple_element_t<0, UTuple>, tuple_element_t<1, UTuple>, ...,
// tuple_element_t<tuple_size_v<UTuple> - 1, UTuple>
// を表す。
}
```
* tuple[link ../tuple.md]
* 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以降)
Expand Down

0 comments on commit 8cc4361

Please sign in to comment.