Skip to content

Commit b2a6ab8

Browse files
committed
コード修飾を追加
1 parent 6348817 commit b2a6ab8

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

lang/cpp26/concept_and_variable-template_template-parameters.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ concept decays_to = C<std::decay_t<T>>;
5858
template <decays_to<std::copyable> T>
5959
auto f(T&& x);
6060
```
61+
* std::copyable[link /reference/concepts/copyable.md]
6162
6263
### 変数テンプレートテンプレートパラメータ
6364
テンプレートパラメータリストにおいて、`auto`キーワードで変数テンプレートを受け取るパラメータを宣言できる。

lang/cpp26/ordering_of_constraints_involving_fold_expressions.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ void g(T...);
3636
// C++26: C<T>はA<T>を包摂するため、2番目のオーバーロードが選択される
3737
g(std::vector{1, 2, 3});
3838
```
39+
* std::is_move_constructible_v[link /reference/type_traits/is_move_constructible.md]
40+
* std::is_copy_constructible_v[link /reference/type_traits/is_copy_constructible.md]
3941
4042
C++26では、`&&`による畳み込み式は個別の制約の連言として、`||`による畳み込み式は個別の制約の選言として正規化され、通常の原子制約と同じ包摂規則が適用される。
4143
@@ -73,7 +75,7 @@ f();
7375
## この機能が必要になった背景・経緯
7476
コンセプトと畳み込み式は、可変引数テンプレートの制約を簡潔に記述するために組み合わせて使われることが多い。しかし、C++23では畳み込み式が原子制約として扱われるため、概念的に明らかな包摂関係が認識されず、オーバーロード解決が曖昧になる問題があった。
7577

76-
たとえば、`std::ranges::bidirectional_range``std::ranges::random_access_range`は非可変引数テンプレートでは正しく順序付けられるが、可変引数テンプレートで畳み込み式を使用すると順序付けが失われていた。この提案はその問題を解決する。
78+
たとえば、[`std::ranges::bidirectional_range`](/reference/ranges/bidirectional_range.md)[`std::ranges::random_access_range`](/reference/ranges/random_access_range.md)は非可変引数テンプレートでは正しく順序付けられるが、可変引数テンプレートで畳み込み式を使用すると順序付けが失われていた。この提案はその問題を解決する。
7779

7880
この提案はP2841R0 (コンセプトと変数テンプレートのテンプレートテンプレートパラメータ) から派生したもので、畳み込み式のパターンが通常の制約式である場合を扱う。パターンがコンセプトテンプレートパラメータである場合はP2841で扱われる。
7981

0 commit comments

Comments
 (0)