Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
e9747d4
array::back, front : LWG Issueを追加
faithandbrave Aug 26, 2026
7f1f1a0
array : LWG Issueを追加
faithandbrave Aug 26, 2026
bfaee2b
atomicクラスのcompare_exchange : LWG Issueを追加
faithandbrave Aug 26, 2026
791d2a2
atomcクラスのコンストラクタ : LWG Issueを追加
faithandbrave Aug 26, 2026
fe21e63
atomic_signal_fence : LWG Issueを追加
faithandbrave Aug 26, 2026
f62440b
bitset : LWG Issueを追加
faithandbrave Aug 26, 2026
47c4a64
duration : LWG Issueを追加
faithandbrave Aug 26, 2026
afbd827
system_clockの変換関数 : 丸めるか切り捨てられるかは処理系定義であることが明記された
faithandbrave Aug 26, 2026
9cffc04
steady_clock : LWG Issueを追加
faithandbrave Aug 26, 2026
51f4d67
treat_as_floating_point : 暗黙変換の許可を意味することが明確化された
faithandbrave Aug 26, 2026
d4a0343
algorithm : LWG Issueを追加
faithandbrave Aug 26, 2026
e2c050d
Predicate, BinaryPredicate, Compareの要件がboolへの文脈依存の変換ができることに統一された
faithandbrave Aug 26, 2026
5b029f4
atomicヘッダ : LWG Issueを追加
faithandbrave Aug 26, 2026
2a7ea00
cmath : LWG Issueを追加
faithandbrave Aug 26, 2026
2300bbe
Invoke : LWG Issueを追加
faithandbrave Aug 26, 2026
2b98107
condition_variable(_any) : LWG Issueを追加
faithandbrave Aug 26, 2026
abcaf79
condition_variableのデストラクタ : 破棄後に待機するスレッドが表れないよう利用者側が保証することが必要である注記が追加された
faithandbrave Aug 26, 2026
29555e4
longjmp : C++11とC++20で未定義動作になる条件を記載
faithandbrave Aug 26, 2026
0f11c90
offset : マクロの展開結果をnoexceptに渡した結果がtrueであることがC++11で規定された
faithandbrave Aug 26, 2026
e3f1edc
unique_copy : C++11でpredが同値関係でなければならない、という要件が追加された
faithandbrave Aug 26, 2026
076ad08
duration : リテラル型であることが規定された
faithandbrave Aug 26, 2026
853e03a
abort : LWG Issuueを追加し、オーバーロード番号をつけた
faithandbrave Aug 26, 2026
251a140
at_quick_exit : 登録された関数が逆順に呼ばれることが明記された
faithandbrave Aug 27, 2026
054db41
exit, _Exit, quick_exit : LWG Issueを追加
faithandbrave Aug 27, 2026
7e520d8
exception::what : コピーされた例外オブジェクトが同じwhat文字列を返すことが規定された
faithandbrave Aug 27, 2026
3f23c5a
unexpected : C++11でnoreturn付与
faithandbrave Aug 27, 2026
ae04579
terminate : C++98とC++11で宣言を分けた
faithandbrave Aug 27, 2026
21efc9f
uncaught_exception : 現在のスレッドが対象であることが明記された
faithandbrave Aug 27, 2026
ff90558
<exception> : LWG Issueを追加
faithandbrave Aug 27, 2026
955d576
function : LWG Issueを追加
faithandbrave Aug 27, 2026
d6a432a
reference_wrapper : LWG Issueを追加
faithandbrave Aug 27, 2026
5933e1e
reference_wrapper : 関数への参照も保持できることが明記された
faithandbrave Aug 27, 2026
89952c5
bind関係 : LWG Issueを追加
faithandbrave Aug 27, 2026
7976263
cref : LWG Issueを追加
faithandbrave Aug 27, 2026
5343fb4
hash : 標準ライブラリのhashは例外送出しないことが規定された
faithandbrave Aug 27, 2026
6d70b57
future, shared_future, packaged_task : LWG Issueを追加
faithandbrave Aug 27, 2026
e76395d
basic_ios : C++98とC++11仕様を書き分けた
faithandbrave Aug 27, 2026
e75a02c
ios_base : LWG Issueを追加
faithandbrave Aug 27, 2026
ca61866
io_errc : LWG Issueを追加
faithandbrave Aug 27, 2026
70b1f15
iosfwd::wstreampos : LWG Issueを追加
faithandbrave Aug 27, 2026
57b82c3
basic_istream, basic_ostream, basic_iostream : C++98とC++11の仕様を書き分け
faithandbrave Aug 27, 2026
da3c723
(back_ | front_)insert_iteratorの代入演算子 : パラメータ型がC++98のconst_referenceか…
faithandbrave Aug 27, 2026
2117697
istream_iterator : 事前条件を追加
faithandbrave Aug 27, 2026
5bc1380
istream_iterator : 読み取り失敗時に終端イテレータになることが規定された
faithandbrave Aug 27, 2026
9b72ec5
threadヘッダ : フリースタンディング環境での扱いが規定された
faithandbrave Aug 27, 2026
2a07ff3
valarray : C++98 / C++11仕様を書き分け
faithandbrave Aug 27, 2026
5fb3de4
pairの代入演算子 : 型変換をするオーバーロードはC++98ではなくC++11から
faithandbrave Aug 27, 2026
9a9fbd3
pair : LWG Issueを追加
faithandbrave Aug 27, 2026
14fa1a9
stack : LWG Issueを追加
faithandbrave Aug 27, 2026
6069a08
scoped_allocator_adaptorの等値比較 : LWG Issueを追加
faithandbrave Aug 27, 2026
8292167
regex : LWG Issueを追加
faithandbrave Aug 27, 2026
e3f5df8
ratio : 要件を適格要件に変更
faithandbrave Aug 27, 2026
7b1a18e
ratioの演算メタ関数 : LWG Issueを追加
faithandbrave Aug 27, 2026
df1e106
random : LWG Issueを追加
faithandbrave Aug 27, 2026
a6c1020
priority_queue : LWG Issueを追加
faithandbrave Aug 27, 2026
e31cddd
queue : LWG Issueを追加
faithandbrave Aug 27, 2026
35732b8
adjacent_difference : 計算量の編集上の誤り訂正がC++11で入った
faithandbrave Aug 27, 2026
bd1e2f3
iota : 要件の書き間違いを修正
faithandbrave Aug 27, 2026
33a137d
partial_sum : 計算量の編集上の誤り訂正がC++11で入った
faithandbrave Aug 27, 2026
c9960a4
basic_filebuf::open : C++11から入ったオーバーロードに言語バージョンを記載
faithandbrave Aug 27, 2026
004b3b3
basic_[i | o]fstreamのコンストラクタとopen : C++11から入ったオーバーロードに言語バージョンを記載
faithandbrave Aug 27, 2026
8759349
iomanip : C++11から入った機能の個別ページを作成
faithandbrave Aug 27, 2026
7e05c2f
basic_istream::sentry : op_boolの個別ページを追加
faithandbrave Aug 27, 2026
23ddd7d
istreambuf_iteratorの等値比較と非等値比較 : クラス名の間違いを修正
faithandbrave Aug 27, 2026
5263418
istreambuf_iteratorのインクリメント : オーバーロード番号を記載
faithandbrave Aug 27, 2026
e2a21d7
istreambuf_iterator::open : パラメータ型がC++11で変更になった
faithandbrave Aug 27, 2026
b7e3dce
istreambuf_iteratorのアロー演算子 : LWG Issueを追加
faithandbrave Aug 27, 2026
ef47316
move_iteratorの添字演算子 : オーバーロード番号をつけて言語バージョンごとの仕様書き分け
faithandbrave Aug 27, 2026
9ffc2de
istream_iteratorのインクリメント : オーバーロード番号をつけた
faithandbrave Aug 27, 2026
07a53c8
move_iterator : オーバーロード番号をつけた
faithandbrave Aug 27, 2026
07eec85
move_iteratorのデフォルトコンストラクタ : 値初期化されることが明確化
faithandbrave Aug 27, 2026
4a7a3fe
ostream_iteratorのコンストラクタ : 不要なテンプレートパラメータの記載を削除
faithandbrave Aug 27, 2026
7674c24
ostream_iteratorのインクリメント : オーバーロード番号をつけた
faithandbrave Aug 27, 2026
0cdf7ab
ostreambuf_iteratorのコンストラクタとfailed : 例外指定をC++98とC++11で書き分けた
faithandbrave Aug 27, 2026
132d425
ostreambuf_iteratorのインクリメント : オーバーロード番号をつけた
faithandbrave Aug 27, 2026
9219395
reverse_iterator : オーバーロード番号をつけた
faithandbrave Aug 27, 2026
917e2a6
reverse_iteratorの代入演算子 : 導入バージョンをC++98からC++11に修正
faithandbrave Aug 27, 2026
756de45
reverse_iteratorのコンストラクタ : デフォルトコンストラクタが値初期化することが明確化
faithandbrave Aug 27, 2026
39795f6
next : LWG Issueを追加
faithandbrave Aug 27, 2026
fe7ab31
money_get::do_get : LWG Issueを追加
faithandbrave Aug 27, 2026
7092d17
num_put::do_put : LWG Issueを追加
faithandbrave Aug 27, 2026
32e51f9
num_get::do_get : C++98仕様を記載
faithandbrave Aug 27, 2026
dcf61e3
wstring_convert, wbuffer_convert : LWG Issueを追加
faithandbrave Aug 27, 2026
2dd4f4f
ctype_byname : LWG Issueを追加
faithandbrave Aug 27, 2026
66a1c9d
locale : C++11でisblankを追加
faithandbrave Aug 27, 2026
6b5e5b6
locale : ファセットの仮想関数が別の仮想関数を呼び出すかどうかが未規定であることが明記された
faithandbrave Aug 27, 2026
d673c9d
allocator_traits : LWG Issueを追加
faithandbrave Aug 27, 2026
58664e7
shared_ptr::get : エイリアスコンストラクタを考慮した仕様になった
faithandbrave Aug 27, 2026
7b1ef2b
shared_ptr : LWG Issueを追加
faithandbrave Aug 27, 2026
107cd31
unique_ptr : LWG Issueを追加
faithandbrave Aug 27, 2026
5f0e6d3
addressof : 演算子オーバーロードが使われないことが明記された
faithandbrave Aug 27, 2026
ae2fdae
allocator : LWG Issueを追加
faithandbrave Aug 27, 2026
0acb5d7
allocator_arg_t : LWG Issueを追加
faithandbrave Aug 27, 2026
c024dc8
declare_no_pointers : LWG Issueを追加
faithandbrave Aug 27, 2026
6b8fe2e
default_delete : メンバ関数の個別ページを作成し、バージョン書き分け
faithandbrave Aug 27, 2026
c600bc5
get_pointer_safety : 例外を投げないことが規定されたのと、戻り値をより明確に書いた
faithandbrave Aug 27, 2026
3b05d41
make_shared : LWG Issueを追加
faithandbrave Aug 27, 2026
fb75eb1
owner_less : LWG Issueを追加
faithandbrave Aug 27, 2026
0875131
uninitialized系 : LWG Issueを追加
faithandbrave Aug 27, 2026
0a37365
weak_ptr : LWG Issueを追加
faithandbrave Aug 27, 2026
15a961e
mutex::lock : デッドロックの可能性を検出できなければ例外ではなくデッドロックすることが記載された
faithandbrave Aug 27, 2026
2a7cd2a
mutex::unlock : アンロック後にほかのスレッドがミューテックスの履き状況を正しく扱うことが処理系の要求されることを記載
faithandbrave Aug 27, 2026
ab3f9a8
unique_lock : LWG Issueを追加
faithandbrave Aug 27, 2026
bdd8255
adopt_lock, defer_lock, try_to_lock : LWG Issueを追加
faithandbrave Aug 27, 2026
143202d
call_once : パラメータを右辺値参照に変更
faithandbrave Aug 27, 2026
f4370e9
mutex, try_lock : LWG Issueを追加
faithandbrave Aug 27, 2026
ef10de0
new_handler : C++98, C++11, C++20の仕様を書き分けた
faithandbrave Aug 27, 2026
ca7c76a
set_new_handler : 例外指定を言語バージョンで書き分け
faithandbrave Aug 27, 2026
448cef7
delete演算子 : ポインタ安全性に関する事前条件を記載
faithandbrave Aug 27, 2026
2b2a4cd
new, delete演算子 : happens afterについて記載
faithandbrave Aug 27, 2026
7c1967a
basic_ostream::sentryのbool変換演算子 : オーバーロード番号をつけた
faithandbrave Aug 27, 2026
488d566
basic_ostream::sentry : 宣言をバージョン書き分け (宣言のみの項目をどう書くかがむずかしいので一旦このまま)
faithandbrave Aug 27, 2026
8312791
stringstreamの代入演算子 : LWG Issueを追加
faithandbrave Aug 27, 2026
28c1325
basic_stringbuf::str : 出力位置を末尾に設定するかどうかの判定を記載
faithandbrave Aug 27, 2026
3649c65
basic_streambuf : 導入バージョンのミスを修正
faithandbrave Aug 27, 2026
0b26e19
basic_streambuf::xsputn : overflowを読み出すかどうかが未規定になった
faithandbrave Aug 27, 2026
301378e
system_error : LWG Issueを記載
faithandbrave Aug 27, 2026
4c5e714
<thread> : LWG Issueを記載
faithandbrave Aug 27, 2026
d9f83d6
tupleのデフォルトコンストラクタ : 値初期化されることになった
faithandbrave Aug 27, 2026
42040ed
<tuple> : LWG Issueを追加
faithandbrave Aug 27, 2026
670588f
decay : 備考として値渡しの引数型を模倣するものであることを記載
faithandbrave Aug 27, 2026
9afe31d
extent : 効果として不足分を記載
faithandbrave Aug 27, 2026
85f638b
type_traits : LWG Issueを追加
faithandbrave Aug 27, 2026
20bda1c
pair : LWG Issueを記載
faithandbrave Aug 27, 2026
251aaef
cfenv : LWG Issueを追加
faithandbrave Aug 27, 2026
8532667
cinttypes : このヘッダに含まれるマクロが無条件に提供されるのと、__STDC_FORMAT_MACROSがC++で効果をもたな…
faithandbrave Aug 27, 2026
0ab338f
vector : LWG Issueを記載
faithandbrave Aug 27, 2026
571dc69
vector::resize : サイズが変わらない場合になにもしないことを記載
faithandbrave Aug 27, 2026
aa5a7e0
deque : LWG Issueを記載
faithandbrave Aug 27, 2026
66b4ed3
deque::swap : 終端イテレータが無効になる場合があることを記載
faithandbrave Aug 27, 2026
49800c4
deque::resize : サイズが変わらない場合になにもしないことが記載された
faithandbrave Aug 27, 2026
0e56ec5
forward_list : LWG Issueを記載
faithandbrave Aug 27, 2026
0710c44
list : LWG Issueを追加
faithandbrave Aug 27, 2026
bee48b4
list::merge : 自身に対してはなにもしないことが明記された
faithandbrave Aug 27, 2026
32783f3
list::resize : listでは new_size <= sizeのときに超過要素を削除する仕様だった (サイズが変わらなくても)
faithandbrave Aug 27, 2026
679c866
list::swap : 終端イテレータが無効になることがあることを記載
faithandbrave Aug 27, 2026
3cb4268
basic_string : LWG Issueを記載
faithandbrave Aug 27, 2026
a9fc7a9
basic_string : 例外安全性を記載
faithandbrave Aug 27, 2026
882ad30
basic_string::data : バージョンごとの計算量と例外仕様を記載
faithandbrave Aug 27, 2026
2c6bcf1
basic_string::swap : 終端イテレータが無効になる可能性があることを記載
faithandbrave Aug 27, 2026
3da3850
char_traits, to_string, to_wstring: LWG Issueを追加
faithandbrave Aug 27, 2026
3d27733
map, set : LWG Issueを追加
faithandbrave Aug 27, 2026
3475458
map, setのswap: 終端イテレータが無効になる可能性があることを記載
faithandbrave Aug 27, 2026
5ecd4a2
map, setのemplace : この関数内で例外送出が発生した場合、効果なしになることを記載
faithandbrave Aug 27, 2026
fe2f259
unordered系コンテナ : LWG Issueを記載
faithandbrave Aug 27, 2026
51c2484
unordered系のインデックスをとるbegin/end : パケットがからである場合に終端イテレータが返されることを記載
faithandbrave Aug 27, 2026
bde6ec9
unordered系のemplace : この関数内で例外送出が起こった場合に効果なしになることを記載
faithandbrave Aug 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 6 additions & 4 deletions reference/algorithm.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@

テンプレートパラメータ名が `Predicate` となっている場合、`Predicate` の値 `pred` と、引数として渡すイテレータ `i` について以下の要件を満たす必要がある

- `pred(*i)` が `bool` として評価できなければならない
- `pred(*i)` が `bool` へ文脈依存の変換をできなければならない
- `pred(*i)` 内で `*i` を書き変えてはならない。

テンプレートパラメータ名が `BinaryPredicate` となっている場合、`BinaryPredicate` の値 `binary_pred` と、引数として渡すイテレータ `i1`, `i2` について以下の要件を満たす必要がある

- `binary_pred(*i1, *i2)` が `bool` として評価できなければならない
- `binary_pred(*i1, *i2)` が `bool` へ文脈依存の変換をできなければならない
- `binary_pred(*i1, *i2)` 内で `*i1` や `*i2` を書き変えてはならない。

### 要素の書き換え操作
Expand Down Expand Up @@ -471,7 +471,9 @@ ranges::sort(pv, {}, &Person::name);
## 参照
- [N2930 Range-Based For Loop Wording (Without Concepts)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html)
- [N4821 25 Algorithms library](https://timsong-cpp.github.io/cppwp/n4861/algorithms)
- [LWG Issue 4457. freestanding for `stable_sort`, `stable_partition` and `inplace_merge`](https://cplusplus.github.io/LWG/issue4457)

- [LWG Issue 556. Is `Compare` a `BinaryPredicate`?](https://cplusplus.github.io/LWG/issue556)
- C++11で、`Predicate`・`BinaryPredicate`・`Compare`の戻り値の要件が「`bool`へ文脈依存の変換ができること」に統一された。それ以前は`Predicate`が「`true`として検査可能な値」、`Compare`が「`bool`へ文脈依存の変換」と揃っておらず、`Compare`が`BinaryPredicate`の要件を満たすかが不明確だった
- [P2976R1 Freestanding Library: algorithm, numeric, and random](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2976r1.html)
- C++26で、`<algorithm>`の大部分(実行ポリシーをとる並列アルゴリズムを除く)がフリースタンディング処理系に対応した
- [LWG Issue 4457. freestanding for `stable_sort`, `stable_partition` and `inplace_merge`](https://cplusplus.github.io/LWG/issue4457)

2 changes: 2 additions & 0 deletions reference/algorithm/all_of.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,5 @@ bool all_of(InputIterator first, InputIterator last, Predicate pred) {
- [N2666 More STL algorithms (revision 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2666.pdf)
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
2 changes: 2 additions & 0 deletions reference/algorithm/any_of.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,5 @@ bool any_of(InputIterator first, InputIterator last, Predicate pred) {
- [N2666 More STL algorithms (revision 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2666.pdf)
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
2 changes: 2 additions & 0 deletions reference/algorithm/copy_backward.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,5 @@ BidirectionalIterator2 copy_backward(BidirectionalIterator1 first,

## 参照
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [LWG Issue 1206. Incorrect requires for `move_backward` and `copy_backward`](https://cplusplus.github.io/LWG/issue1206)
- C++11で、`result`が含まれてはならない範囲が`[first, last)`から`(first, last]`に修正された。後方へコピーする場合に上書きされうるのは`last`までであり、`first`は上書きされないため
4 changes: 3 additions & 1 deletion reference/algorithm/find_end.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,5 +141,7 @@ ForwardIterator1 find_end(ForwardIterator1 first1, ForwardIterator1 last1,


## 参照
- [LWG Issue 2150. Unclear specification of `find_end`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150)
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [LWG Issue 2150. Unclear specification of `find_end`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150)
2 changes: 2 additions & 0 deletions reference/algorithm/find_first_of.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,3 +145,5 @@ InputIterator find_first_of(InputIterator first1, InputIterator last1,
- C++11から、パラメータのイテレータ型に対する制約が緩和され、`ForwardIterator`から`InputIterator`に変更になった経緯のレポート
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
2 changes: 2 additions & 0 deletions reference/algorithm/for_each.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,3 +164,5 @@ Function for_each(InputIterator first, InputIterator last, Function f) {
## 参照
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1110. Is `for_each` overconstrained?](https://cplusplus.github.io/LWG/issue1110)
- C++11で、`Function`に対する要件がコピー構築可能からムーブ構築可能へ緩和され、戻り値が`std::move(f)`と規定された
2 changes: 2 additions & 0 deletions reference/algorithm/is_partitioned.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,5 @@ bool is_partitioned(InputIterator first, InputIterator last, Predicate pred)
- [N2666 More STL algorithms (revision 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2666.pdf)
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
2 changes: 2 additions & 0 deletions reference/algorithm/is_permutation.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,3 +231,5 @@ bool is_permutation(ForwardIterator1 first1, ForwardIterator1 last1,
- [N3671 Making non-modifying sequence operations more robust: Revision 2](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671.html)
- C++14から追加された、`last2`を受け取るオーバーロードの提案文書
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [LWG Issue 1431. `is_permutation` must be more restrictive](https://cplusplus.github.io/LWG/issue1431)
- C++11で、2つのイテレータ範囲の値型が同じであり、比較関数が同値関係であることが要件に追加された。それ以外の場合は仕様として意味が定まらないため
2 changes: 2 additions & 0 deletions reference/algorithm/merge.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,3 +182,5 @@ OutputIterator merge(InputIterator1 first1, InputIterator1 last1,
- [P0574R1 Algorithm Complexity Constraints and Parallel Overloads](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0574r1.html)
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 780. `std::merge()` specification incorrect/insufficient](https://cplusplus.github.io/LWG/issue780)
- C++11で、効果が「2つの範囲をマージする」という記述から、「全要素をコピーし、結果がソート済みになるようにする」という具体的な記述へ改められ、入力範囲がソート済みであることが事前条件として明記された
2 changes: 2 additions & 0 deletions reference/algorithm/move_backward.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,5 @@ BidirectionalIterator2 move_backward(BidirectionalIterator1 first, Bidirectional

## 参照
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [LWG Issue 1206. Incorrect requires for `move_backward` and `copy_backward`](https://cplusplus.github.io/LWG/issue1206)
- C++11で、`result`が含まれてはならない範囲が`[first, last)`から`(first, last]`に修正された。後方へコピーする場合に上書きされうるのは`last`までであり、`first`は上書きされないため
2 changes: 2 additions & 0 deletions reference/algorithm/none_of.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,3 +107,5 @@ bool none_of(InputIterator first, InputIterator last, Predicate pred) {
- [N2666 More STL algorithms (revision 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2666.pdf)
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
4 changes: 3 additions & 1 deletion reference/algorithm/partition.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ ForwardIterator partition(ForwardIterator first, ForwardIterator last, Predicate


## 参照
- [LWG Issue 2150. Unclear specification of `find_end`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150)
- [LWG Issue 498. Requirements for `partition()` and `stable_partition()` too strong](https://cplusplus.github.io/LWG/issue498)
- C++11で、`partition`のイテレータ要件が`BidirectionalIterator`から`ForwardIterator`へ緩和され、計算量も`ForwardIterator`の場合の回数が別途規定された。前方向にしか進めないイテレータでも区分化は実装できるため
- [P0574R1 Algorithm Complexity Constraints and Parallel Overloads](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0574r1.html)
- [P0879R0 Constexpr for `swap` and `swap` related functions](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html)
- [LWG Issue 2150. Unclear specification of `find_end`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150)
10 changes: 7 additions & 3 deletions reference/algorithm/search.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,10 +223,14 @@ ForwardIterator1 search(ForwardIterator1 first1, ForwardIterator1 last1,
- [`ranges::search`](/reference/algorithm/ranges_search.md)

## 参照
- [LWG Issue 2150. Unclear specification of `find_end`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150)
- [LWG Issue 4179. Wrong range in [alg.search]](https://cplusplus.github.io/LWG/issue4179)
- C++26で、探索対象のイテレータ`i`の範囲が`[first1, last1 - (last2 - first2)]`(右端を含む閉区間)であることが明確化された
- [LWG Issue 1205. Some algorithms could more clearly document their handling of empty ranges](https://cplusplus.github.io/LWG/issue1205)
- C++11で、空のイテレータ範囲を渡した場合の戻り値が明記された
- [LWG Issue 1338. LWG 1205 incorrectly applied](https://cplusplus.github.io/LWG/issue1338)
- C++11で、探索範囲の記述が`[first1, last1 - (last2 - first2))`と修正され、空範囲の場合の戻り値の記述が整理された
- [N3905 Extending `std::search` to use Additional Searching Algorithms (Version 4)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3905.html)
- [P0220R1 Adopt Library Fundamentals V1 TS Components for C++17 (R1)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html)
- [P0253R1 Fixing a design mistake in the searchers interface in Library Fundamentals](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf)
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [LWG Issue 2150. Unclear specification of `find_end`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150)
- [LWG Issue 4179. Wrong range in [alg.search]](https://cplusplus.github.io/LWG/issue4179)
- C++26で、探索対象のイテレータ`i`の範囲が`[first1, last1 - (last2 - first2)]`(右端を含む閉区間)であることが明確化された
6 changes: 4 additions & 2 deletions reference/algorithm/shuffle.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,9 @@ void shuffle(RandomAccessIterator first, RandomAccessIterator last, UniformRando
- [`ranges::shuffle`](/reference/algorithm/ranges_shuffle.md)

## 参照
- [LWG Issue 2716. Specification of `shuffle` and `sample` disallows lvalue URNGs](https://cplusplus.github.io/LWG/issue2716)
- C++17で、乱数生成器の要件が`remove_reference_t`を通して判定されるよう整理され、左辺値の乱数生成器を渡せることが明確化された
- [LWG Issue 1432. `random_shuffle` signatures are inconsistent](https://cplusplus.github.io/LWG/issue1432)
- C++11で、乱数生成器の引数型が左辺値参照から右辺値参照へ改められた。一時オブジェクトの乱数生成器を渡せるようにするため
- [P0346R1 A `<random>` Nomenclature Tweak](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0346r1.pdf)
- URNGをURBGに変更
- [LWG Issue 2716. Specification of `shuffle` and `sample` disallows lvalue URNGs](https://cplusplus.github.io/LWG/issue2716)
- C++17で、乱数生成器の要件が`remove_reference_t`を通して判定されるよう整理され、左辺値の乱数生成器を渡せることが明確化された
4 changes: 3 additions & 1 deletion reference/algorithm/unique_copy.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ namespace std {


## 要件
- 二項関数オブジェクト`pred`は、ふたつの値の等値性を判定できなければならない
- 二項関数オブジェクト`pred`は、ふたつの値の等値性を判定できなければならない。また、`pred`は同値関係でなければならない
- `[first,last)` と `[result,result + (last - first))` は重なっていてはならない


Expand Down Expand Up @@ -183,5 +183,7 @@ OutputIterator unique_copy(InputIterator first, InputIterator last,
## 参照
- [P0202R3 Add Constexpr Modifiers to Functions in `<algorithm>` and `<utility>` Headers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html)
- [P0467R2 Iterator Concerns for Parallel Algorithms](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html)
- [LWG Issue 1241. `unique_copy` needs to require EquivalenceRelation](https://cplusplus.github.io/LWG/issue1241)
- C++11で、比較関数が同値関係でなければならないことが要件に追加された
- [LWG Issue 4269. `unique_copy` passes arguments to its predicate backwards](https://cplusplus.github.io/LWG/issue4269)
- C++26で、述語`pred`に渡す引数の順序が`pred(*i, *(i - 1))`から`pred(*(i - 1), *i)`へ修正された(記述上の引数順の誤りの修正。`pred`は同値関係であることが要求されるため動作は変わらない)
6 changes: 4 additions & 2 deletions reference/array/array.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,9 @@ int main()


## 参照
- [LWG Issue 2590. Aggregate initialization for `std::array`](https://cplusplus.github.io/LWG/issue2590)
- C++17で、`array`がコピーリスト初期化に限らず集成体初期化一般で初期化できることが明確化された(`std::array<int, 1> a{0};`のような直接波カッコ初期化も適格)
- [LWG Issue 1306. pointer and `const_pointer` for `<array>`](https://cplusplus.github.io/LWG/issue1306)
- C++11で、メンバ型`pointer`と`const_pointer`が追加された。ほかのコンテナには定義されていたが、記載が漏れていた
- [LWG Issue 2310. Public exposition only member in `std::array`](https://cplusplus.github.io/LWG/issue2310)
- C++17で、`array`が集成体であることを示す説明専用メンバ(`elems`)がpublicである旨が明確化され、`data()`の規定が`addressof(front())`を用いる形に整理された
- [LWG Issue 2590. Aggregate initialization for `std::array`](https://cplusplus.github.io/LWG/issue2590)
- C++17で、`array`がコピーリスト初期化に限らず集成体初期化一般で初期化できることが明確化された(`std::array<int, 1> a{0};`のような直接波カッコ初期化も適格)
2 changes: 2 additions & 0 deletions reference/array/array/back.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,5 +72,7 @@ int main()
## 参照
- [N3470 Constexpr Library Additions: containers, v2](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3470.html)
- [P0031R0 A Proposal to Add Constexpr Modifiers to `reverse_iterator`, `move_iterator`, `array` and Range Access](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html)
- [LWG Issue 1417. `front`/`back` on a zero-sized array should be undefined](https://cplusplus.github.io/LWG/issue1417)
- C++11で、長さ0の配列に対して呼び出したときの動作が、処理系定義から未定義動作へ改められた
- [LWG Issue 4276. `front()` and `back()` are not hardened for zero-length `std::array`](https://cplusplus.github.io/LWG/issue4276)
- C++26で、[array.zero]の「長さ0の配列で`front()`/`back()`を呼び出したときの動作は未定義」という特別規定が削除され、他の要素アクセス関数と同様に堅牢化された事前条件の対象となった
2 changes: 2 additions & 0 deletions reference/array/array/front.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,7 @@ int main()
## 参照
- [N3470 Constexpr Library Additions: containers, v2](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3470.html)
- [P0031R0 A Proposal to Add Constexpr Modifiers to `reverse_iterator`, `move_iterator`, `array` and Range Access](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html)
- [LWG Issue 1417. `front`/`back` on a zero-sized array should be undefined](https://cplusplus.github.io/LWG/issue1417)
- C++11で、長さ0の配列に対して呼び出したときの動作が、処理系定義から未定義動作へ改められた
- [LWG Issue 4276. `front()` and `back()` are not hardened for zero-length `std::array`](https://cplusplus.github.io/LWG/issue4276)
- C++26で、[array.zero]の「長さ0の配列で`front()`/`back()`を呼び出したときの動作は未定義」という特別規定が削除され、他の要素アクセス関数と同様に堅牢化された事前条件の対象となった
Loading
Loading