@@ -57,21 +57,21 @@ regex_token_iterator(const regex_token_iterator&);
5757
5858## 効果
5959- (1) デフォルトコンストラクタ。シーケンス終端イテレータ(シーケンスの終端を示す特別なイテレータ)を構築する。
60- - (2)~ (5) メンバ変数 `subs` を、引数 `submatch` の 1 要素のみで((2) の形式の場合)、あるいは、引数 `submatches` で((3)~ (5) の形式の場合)初期化する。
60+ - (2)- (5) メンバ変数 `subs` を、引数 `submatch` の 1 要素のみで((2) の形式の場合)、あるいは、引数 `submatches` で((3)- (5) の形式の場合)初期化する。
6161 また、メンバ変数 `N`、`position` をそれぞれ、`0`、[`regex_iterator`](../regex_iterator.md)`<BidirectionalIterator>(a, b, re, m)` で初期化する。
6262 もし、`position` がシーケンス終端イテレータでなければ、メンバ変数 `result` を現在のマッチ(備考参照)のアドレスに設定する。
6363 そうでなくて、もし、メンバ変数 `subs` が `-1` を含んでいたら、`*this` を範囲 `[a, b)` を指す接尾辞イテレータとして設定する。
6464 そうでなければ、`*this` をシーケンス終端イテレータとして設定する。
65- - (6)~ (9) deleted コンストラクタであるため、使用するとコンパイルエラーとなる。((2)~ (5) の形式の `re` の型を `const regex_type&` から `regex_type&&` に変更したもの)
65+ - (6)- (9) deleted コンストラクタであるため、使用するとコンパイルエラーとなる。((2)- (5) の形式の `re` の型を `const regex_type&` から `regex_type&&` に変更したもの)
6666- (10) コピーコンストラクタ。
6767
6868
6969## 備考
7070- 「現在のマッチ」とは、もし `subs[N]` が -1 の場合には `(*position).`[`prefix`](../match_results/prefix.md)`()`、そうでなければ `(*position).[subs[N]]` の事を指す。
7171- メンバ変数 `subs`、`N`、`position`、`result` はあくまでも説明用のプライベートメンバ変数であるため、注意すること。
7272- `regex_token_iterator` は、メンバ変数 `position` を通して指定された正規表現 `re` のコピーではなく、`re` へのポインタをオブジェクト内に保持するため、引数に渡した正規表現オブジェクトは当該イテレータを使用し終わるまで破棄されないようにする必要がある。
73- 従って、(2)~ (5) の形式のコンストラクタに渡す引数 `re` に一時オブジェクトを指定することはほぼ間違いなくプログラミング上のエラーを意味する。
74- (6)~ (9) の形式のコンストラクタが C++14 で追加された理由は、この事態をコンパイル時に検出するためである。
73+ 従って、(2)- (5) の形式のコンストラクタに渡す引数 `re` に一時オブジェクトを指定することはほぼ間違いなくプログラミング上のエラーを意味する。
74+ (6)- (9) の形式のコンストラクタが C++14 で追加された理由は、この事態をコンパイル時に検出するためである。
7575 しかし、この追加のため、C++11 では適格となりうる以下のようなコードは C++14 ではコンパイルエラーになる。
7676 ```cpp
7777 void f(std::sregex_token_iterator&&);
@@ -161,5 +161,5 @@ match range = (67, 73), str = 'value3'
161161
162162
163163### 備考
164- - libstdc++ には 5.0.0 rev.218373 現在、(6)~ (9) の形式のコンストラクタは存在しない。
165- - libc++ には、3.4 までは (6)~ (9) の形式のコンストラクタは存在しない。また、3.0 には (4) の形式のコンストラクタも存在しない。
164+ - libstdc++ には 5.0.0 rev.218373 現在、(6)- (9) の形式のコンストラクタは存在しない。
165+ - libc++ には、3.4 までは (6)- (9) の形式のコンストラクタは存在しない。また、3.0 には (4) の形式のコンストラクタも存在しない。
0 commit comments