Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7432d76
fexcept_t : オブジェクト型であることを明確化
faithandbrave Aug 17, 2026
177bbb0
complex::operator= : LWG Issueを記載
faithandbrave Aug 17, 2026
cf04ede
expectedのモナディック操作 : 効果と適格要件での正常値へのアクセスに`**this`が使われるよう仕様変更
faithandbrave Aug 17, 2026
14d1f9f
expected.voidの代入演算子 : 適格要件を追加
faithandbrave Aug 17, 2026
6c808d4
expected.voidのvalue : 適格要件を追加
faithandbrave Aug 17, 2026
ac785fa
flat_map, flat_set : LWG Issueを記載
faithandbrave Aug 17, 2026
fc253b6
basic_format_(parse_)context : ユーザーによる特殊化を禁止
faithandbrave Aug 17, 2026
a6903d0
formattable : テンプレート引数の誤りを修正
faithandbrave Aug 17, 2026
bafcd89
generator::promise_type::yield_value : noexcept削除
faithandbrave Aug 17, 2026
4eefe31
localeのctype_base : constexpr対応
faithandbrave Aug 17, 2026
39c6fa5
飽和演算 : LWG Issueを追加
faithandbrave Aug 17, 2026
d7d50d7
common_viewのbegin / end : 制約を追加
faithandbrave Aug 17, 2026
324c099
enumerate_view : iteratorを返す条件にforward_rangeを追加
faithandbrave Aug 17, 2026
b6032ec
repeat_viewの推論補助 : LWG Issueを追加
faithandbrave Aug 17, 2026
2ac0cb7
single_viewのempty : LWG Issueを追加
faithandbrave Aug 17, 2026
bf7b798
enumerate_view : LWG Issueを追加
faithandbrave Aug 17, 2026
939cb2d
repeat_view : 効果にdecayを追加
faithandbrave Aug 17, 2026
1b9c306
ranges::to : 再起分岐でRangeをref_viewで包むよう変更
faithandbrave Aug 17, 2026
c4d496e
ranges::to : container-insertableの要件を修正
faithandbrave Aug 17, 2026
65fea48
spanの要素アクセス : 例外を投げないことを明示
faithandbrave Aug 17, 2026
bf9d7ee
spanのデストラクタページを追加し、C++26からnoexceptを削除
faithandbrave Aug 17, 2026
215486d
basic_streambufのsetg / setp : 事前条件を追加
faithandbrave Aug 17, 2026
dc70ded
basic_string_viewの比較演算子 : パラメータをtype_identityで包んだ
faithandbrave Aug 17, 2026
50a641b
text_encoding::aliases_view : constexprイテレータであることが規定された
faithandbrave Aug 17, 2026
1f6b717
tupleのコンストラクタ : ダングリング参照になる場合に削除定義されることが規定された
faithandbrave Aug 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions reference/cfenv/fexcept_t.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ namespace std {
## 概要
実装が持つ浮動小数点例外の状態フラグを表す型。

この型はオブジェクト型であり、整数型であるとは限らない。


## 例
```cpp example
Expand Down Expand Up @@ -58,3 +60,8 @@ zero divided
- [ICC](/implementation.md#icc): ??
- [Visual C++](/implementation.md#visual_cpp): 2013 [mark verified], 2015 [mark verified]
- コンパイルオプション`/fp:strict`または`#pragma fenv_access (on)`が必要。さもなくば、正しく動作しないおそれがある。


## 参照
- [LWG Issue 3905. Type of `std::fexcept_t`](https://cplusplus.github.io/LWG/issue3905)
- C++26で、`fexcept_t`が「整数型」ではなく「オブジェクト型」であることが明確化された
2 changes: 2 additions & 0 deletions reference/complex/complex/op_assign.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,5 @@ c = (7,0), d = (2,3)

## 参照
- [P0415R1 Constexpr for `std::complex`](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html)
- [LWG Issue 3935. `template<class X> constexpr complex& operator=(const complex<X>&)` has no specification](https://cplusplus.github.io/LWG/issue3935)
- C++26で、別の要素型をもつ複素数からの変換コピー代入演算子(3)の効果と戻り値が規定された
5 changes: 5 additions & 0 deletions reference/expected/expected.void/op_assign.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ constexpr expected& operator=(unexpected<G>&& e); // (4)


## テンプレートパラメータ制約
- (2) : 次の制約を全て満たすこと
- [`is_move_constructible_v`](/reference/type_traits/is_move_constructible.md)`<E> == true`
- [`is_move_assignable_v`](/reference/type_traits/is_move_assignable.md)`<E> == true`
- (3) : 次の制約を全て満たすこと
- [`is_constructible_v`](/reference/type_traits/is_constructible.md)`<E, const G&> == true`
- [`is_assignable_v`](/reference/type_traits/is_assignable.md)`<E&, const G&> == true`
Expand Down Expand Up @@ -175,5 +178,7 @@ int main()

## 参照
- [P0323R12 std::expected](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html)
- [LWG Issue 4025. Move assignment operator of `std::expected<cv void, E>` should not be conditionally deleted](https://cplusplus.github.io/LWG/issue4025)
- C++26で、ムーブ代入演算子(2)が条件付きでdelete定義されるのではなく、テンプレートパラメータ制約によってオーバーロード解決から除外されるよう修正された
- [LWG Issue 4026. Assignment operators of `std::expected` should propagate triviality](https://cplusplus.github.io/LWG/issue4026)
- C++26で、`E`が対応する操作をトリビアルに持つ場合に、コピー代入演算子(1)とムーブ代入演算子(2)もトリビアルに定義されるようになった
7 changes: 7 additions & 0 deletions reference/expected/expected.void/value.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ constexpr void value() &&; // (2)
正常値(`void`)を取得する。


## 適格要件
- (1) : [`is_copy_constructible_v`](/reference/type_traits/is_copy_constructible.md)`<E> == true`であること
- (2) : [`is_copy_constructible_v`](/reference/type_traits/is_copy_constructible.md)`<E> == true`かつ[`is_move_constructible_v`](/reference/type_traits/is_move_constructible.md)`<E> == true`であること


## 戻り値
なし

Expand Down Expand Up @@ -74,3 +79,5 @@ throw:42

## 参照
- [P0323R12 std::expected](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html)
- [LWG Issue 3940. `std::expected<void, E>::value()` also needs `E` to be copy constructible](https://cplusplus.github.io/LWG/issue3940)
- C++26で、(1)に`E`がコピー構築可能であること、(2)に`E`がコピー構築可能かつムーブ構築可能であることを要求する適格要件が追加された
14 changes: 8 additions & 6 deletions reference/expected/expected/and_then.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ class expected {


## 適格要件
- (1), (2) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`value()`](value.md)`)>>`としたとき、次を全て満たすこと
- (1), (2) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`**this`](op_deref.md)`)>>`としたとき、次を全て満たすこと
- `U`が`expected`の特殊化である
- [`is_same_v`](/reference/type_traits/is_same.md)`<U::error_type, E> == true`
- (3), (4) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`std::move`](/reference/utility/move.md)`(`[`value()`](value.md)`))>>`としたとき、次を全て満たすこと
- (3), (4) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`std::move`](/reference/utility/move.md)`(`[`**this`](op_deref.md)`))>>`としたとき、次を全て満たすこと
- `U`が`expected`の特殊化である
- [`is_same_v`](/reference/type_traits/is_same.md)`<U::error_type, E> == true`

Expand All @@ -47,25 +47,25 @@ class expected {
- (1), (2) : 次の処理と等価
```cpp
if (has_value())
return invoke(std::forward<F>(f), value());
return invoke(std::forward<F>(f), **this);
else
return U(unexpect, error());
```
* has_value[link has_value.md]
* value()[link value.md]
* **this[link op_deref.md]
* error()[link error.md]
* unexpect[link ../unexpect_t.md]
* invoke[link /reference/functional/invoke.md]

- (3), (4) : 次の処理と等価
```cpp
if (has_value())
return invoke(std::forward<F>(f), std::move(value()));
return invoke(std::forward<F>(f), std::move(**this));
else
return U(unexpect, std::move(error()));
```
* has_value[link has_value.md]
* value()[link value.md]
* **this[link op_deref.md]
* error()[link error.md]
* unexpect[link ../unexpect_t.md]
* invoke[link /reference/functional/invoke.md]
Expand Down Expand Up @@ -133,3 +133,5 @@ int main()

## 参照
- [P2505R5 Monadic Functions for `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html)
- [LWG Issue 3938. Cannot use `std::expected` monadic ops with move-only `error_type`](https://cplusplus.github.io/LWG/issue3938)
- C++26で、効果および適格要件で正常値へのアクセスに[`value()`](value.md)ではなく[`**this`](op_deref.md)を使うよう修正され、ムーブのみ可能な`error_type`でも使用できるようになった
10 changes: 6 additions & 4 deletions reference/expected/expected/or_else.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,24 @@ class expected {
- (1), (2) : 次の処理と等価
```cpp
if (has_value())
return G(in_place, value());
return G(in_place, **this);
else
return invoke(std::forward<F>(f), error());
```
* has_value()[link has_value.md]
* value()[link value.md]
* **this[link op_deref.md]
* error()[link error.md]
* invoke[link /reference/functional/invoke.md]

- (3), (4) : 次の処理と等価
```cpp
if (has_value())
return G(in_place, std::move(value()));
return G(in_place, std::move(**this));
else
return invoke(std::forward<F>(f), std::move(error()));
```
* has_value()[link has_value.md]
* value()[link value.md]
* **this[link op_deref.md]
* error()[link error.md]
* invoke[link /reference/functional/invoke.md]
* std::move[link /reference/utility/move.md]
Expand Down Expand Up @@ -137,3 +137,5 @@ int main()

## 参照
- [P2505R5 Monadic Functions for `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html)
- [LWG Issue 3938. Cannot use `std::expected` monadic ops with move-only `error_type`](https://cplusplus.github.io/LWG/issue3938)
- C++26で、効果で正常値へのアクセスに[`value()`](value.md)ではなく[`**this`](op_deref.md)を使うよう修正され、ムーブのみ可能な`error_type`でも使用できるようになった
18 changes: 10 additions & 8 deletions reference/expected/expected/transform.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,23 @@ class expected {


## 適格要件
- (1), (2) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`value()`](value.md)`)>>`としたとき、次を全て満たすこと
- (1), (2) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`**this`](op_deref.md)`)>>`としたとき、次を全て満たすこと
- `U`が`expected`の有効な正常値型である
- `U`が(CV修飾された)`void`ではないとき、宣言`U u(`[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`value()`](value.md)`));`が妥当である
- (3), (4) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`std::move`](/reference/utility/move.md)`(`[`value()`](value.md)`))>>`としたとき、次を全て満たすこと
- `U`が(CV修飾された)`void`ではないとき、宣言`U u(`[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`**this`](op_deref.md)`));`が妥当である
- (3), (4) : 型`U`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`<`[`invoke_result_t`](/reference/type_traits/invoke_result.md)`<F, decltype(`[`std::move`](/reference/utility/move.md)`(`[`**this`](op_deref.md)`))>>`としたとき、次を全て満たすこと
- `U`が`expected`の有効な正常値型である
- `U`が(CV修飾された)`void`ではないとき、宣言`U u(`[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`value()`](value.md)`)));`が妥当である
- `U`が(CV修飾された)`void`ではないとき、宣言`U u(`[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`**this`](op_deref.md)`)));`が妥当である


## 効果
- (1), (2) : 次の効果をもつ
- エラー値を保持していたら、`expected<U, E>(`[`unexpect`](../unexpect_t.md)`,` [`error()`](error.md)`)`を返す。
- 型`U`が(CV修飾された)`void`でなければ、正常値を[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`value()`](value.md)`)`で直接非リスト初期化した`expected<U, E>`オブジェクトを返す。
- そうでなければ、[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`value()`](value.md)`)`を評価し、`expected<U, E>()`を返す。
- 型`U`が(CV修飾された)`void`でなければ、正常値を[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`**this`](op_deref.md)`)`で直接非リスト初期化した`expected<U, E>`オブジェクトを返す。
- そうでなければ、[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`**this`](op_deref.md)`)`を評価し、`expected<U, E>()`を返す。
- (3), (4) : 次の効果をもつ
- エラー値を保持していたら、`expected<U, E>(`[`unexpect`](../unexpect_t.md)`,` [`std::move`](/reference/utility/move.md)`(`[`error()`](error.md)`))`を返す。
- 型`U`が(CV修飾された)`void`でなければ、正常値を[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`value()`](value.md)`))`で直接非リスト初期化した`expected<U, E>`オブジェクトを返す。
- そうでなければ、[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`value()`](value.md)`))`を評価し、`expected<U, E>()`を返す。
- 型`U`が(CV修飾された)`void`でなければ、正常値を[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`**this`](op_deref.md)`))`で直接非リスト初期化した`expected<U, E>`オブジェクトを返す。
- そうでなければ、[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`**this`](op_deref.md)`))`を評価し、`expected<U, E>()`を返す。


## 備考
Expand Down Expand Up @@ -112,3 +112,5 @@ int main()

## 参照
- [P2505R5 Monadic Functions for `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html)
- [LWG Issue 3938. Cannot use `std::expected` monadic ops with move-only `error_type`](https://cplusplus.github.io/LWG/issue3938)
- C++26で、効果および適格要件で正常値へのアクセスに[`value()`](value.md)ではなく[`**this`](op_deref.md)を使うよう修正され、ムーブのみ可能な`error_type`でも使用できるようになった
6 changes: 4 additions & 2 deletions reference/expected/expected/transform_error.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ class expected {

## 効果
- (1), (2) : 次の効果をもつ
- 正常値を保持していたら、`expected<T, G>(`[`in_place`](/reference/utility/in_place_t.md)`,` [`value()`](value.md)`)`を返す。
- 正常値を保持していたら、`expected<T, G>(`[`in_place`](/reference/utility/in_place_t.md)`,` [`**this`](op_deref.md)`)`を返す。
- そうでなければ、エラー値を[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`error()`](error.md)`)`で直接非リスト初期化した`expected<T, G>`オブジェクトを返す。
- (3), (4) : 次の効果をもつ
- 正常値を保持していたら、`expected<T, G>(`[`in_place`](/reference/utility/in_place_t.md)`,` [`std::move`](/reference/utility/move.md)`(`[`value()`](value.md)`))`を返す。
- 正常値を保持していたら、`expected<T, G>(`[`in_place`](/reference/utility/in_place_t.md)`,` [`std::move`](/reference/utility/move.md)`(`[`**this`](op_deref.md)`))`を返す。
- そうでなければ、エラー値を[`invoke`](/reference/functional/invoke.md)`(`[`std::forward`](/reference/utility/forward.md)`<F>(f),` [`std::move`](/reference/utility/move.md)`(`[`error()`](error.md)`))`で直接非リスト初期化した`expected<T, G>`オブジェクトを返す。


Expand Down Expand Up @@ -109,3 +109,5 @@ int main()

## 参照
- [P2505R5 Monadic Functions for `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html)
- [LWG Issue 3938. Cannot use `std::expected` monadic ops with move-only `error_type`](https://cplusplus.github.io/LWG/issue3938)
- C++26で、効果で正常値へのアクセスに[`value()`](value.md)ではなく[`**this`](op_deref.md)を使うよう修正され、ムーブのみ可能な`error_type`でも使用できるようになった
2 changes: 2 additions & 0 deletions reference/flat_map/flat_map/op_constructor.md
Original file line number Diff line number Diff line change
Expand Up @@ -451,4 +451,6 @@ int main()


## 参照
- [LWG Issue 3884. `flat_foo` is missing allocator-extended copy/move constructors](https://cplusplus.github.io/LWG/issue3884)
- C++26で、`flat_map`にアロケータを指定するコピーコンストラクタ(5)とムーブコンストラクタ(6)が追加された
- [P3372R3 constexpr containers and adaptors](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3372r3.html)
2 changes: 2 additions & 0 deletions reference/flat_map/flat_multimap/op_constructor.md
Original file line number Diff line number Diff line change
Expand Up @@ -447,4 +447,6 @@ int main()


## 参照
- [LWG Issue 3884. `flat_foo` is missing allocator-extended copy/move constructors](https://cplusplus.github.io/LWG/issue3884)
- C++26で、`flat_multimap`にアロケータを指定するコピーコンストラクタ(5)とムーブコンストラクタ(6)が追加された
- [P3372R3 constexpr containers and adaptors](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3372r3.html)
2 changes: 2 additions & 0 deletions reference/flat_set/flat_multiset/op_constructor.md
Original file line number Diff line number Diff line change
Expand Up @@ -432,4 +432,6 @@ int main()


## 参照
- [LWG Issue 3884. `flat_foo` is missing allocator-extended copy/move constructors](https://cplusplus.github.io/LWG/issue3884)
- C++26で、`flat_multiset`にアロケータを指定するコピーコンストラクタ(5)とムーブコンストラクタ(6)が追加された
- [P3372R3 constexpr containers and adaptors](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3372r3.html)
2 changes: 2 additions & 0 deletions reference/flat_set/flat_set/op_constructor.md
Original file line number Diff line number Diff line change
Expand Up @@ -433,4 +433,6 @@ int main()


## 参照
- [LWG Issue 3884. `flat_foo` is missing allocator-extended copy/move constructors](https://cplusplus.github.io/LWG/issue3884)
- C++26で、`flat_set`にアロケータを指定するコピーコンストラクタ(5)とムーブコンストラクタ(6)が追加された
- [P3372R3 constexpr containers and adaptors](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3372r3.html)
4 changes: 4 additions & 0 deletions reference/format/basic_format_context.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ namespace std {

C++26では、コピーコンストラクタとコピー代入演算子が`= delete`で明示的に削除され、このクラスがコピー構築・コピー代入できないことが明確化された(これにともないムーブおよびデフォルト構築もできない)。

また、このクラステンプレートの明示的特殊化または部分特殊化をユーザーが宣言した場合、プログラムは不適格となる(診断不要)。

## メンバ関数

| 名前 | 説明 | 対応バージョン |
Expand Down Expand Up @@ -106,5 +108,7 @@ namespace std {
## 参照

* [P0645R10 Text Formatting](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html)
* [LWG Issue 3975. Specializations of `basic_format_context` should not be permitted](https://cplusplus.github.io/LWG/issue3975)
* C++26で、ユーザーによる明示的特殊化・部分特殊化が不適格(診断不要)とされた
* [LWG Issue 4061. Should `std::basic_format_context` be default-constructible/copyable/movable?](https://cplusplus.github.io/LWG/issue4061)
* C++26で、コピーコンストラクタとコピー代入演算子が`= delete`で明示的に削除され、コピー・ムーブ・デフォルト構築ができないことが明確化された
7 changes: 7 additions & 0 deletions reference/format/basic_format_parse_context.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ namespace std {

このクラスのオブジェクトはコピーできない。


## 備考
このクラステンプレートの明示的特殊化または部分特殊化をユーザーが宣言した場合、プログラムは不適格となる(診断不要)。


## メンバ関数

| 名前 | 説明 | 対応バージョン |
Expand Down Expand Up @@ -143,3 +148,5 @@ namespace std {

* [P0645R10 Text Formatting](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html)
* [P2757R3 Type-checking format args](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2757r3.html)
* [LWG Issue 3975. Specializations of `basic_format_context` should not be permitted](https://cplusplus.github.io/LWG/issue3975)
* C++26で、`basic_format_parse_context`についてもユーザーによる明示的特殊化・部分特殊化が不適格(診断不要)とされた
4 changes: 3 additions & 1 deletion reference/format/formattable.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace std {

template <class T, class charT>
concept formattable =
formattable-with<remove_reference_t<T>, basic_format_context<fmt-iter-for<charT>>>;
formattable-with<remove_reference_t<T>, basic_format_context<fmt-iter-for<charT>, charT>>;
}
```
* fmt-iter-for[italic]
Expand Down Expand Up @@ -79,3 +79,5 @@ hello
## 参照
- [P2286R8 Formatting Ranges](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2286r8.html)
- [N4950 22.14.6.2 Concept formattable](https://timsong-cpp.github.io/cppwp/n4950/format.formattable#concept:formattable-with)
- [LWG Issue 3925. Concept `formattable`'s definition is incorrect](https://cplusplus.github.io/LWG/issue3925)
- C++26で、`basic_format_context`のテンプレート引数に文字型`charT`が欠けていた誤りが修正された
Loading
Loading