tmp/tmpzz67_en6/{from.md → to.md}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
-
### Class template `regex_iterator` <a id="re.regiter">[[re.regiter]]</a>
|
| 2 |
|
| 3 |
-
#### General <a id="re.regiter.general">[[re.regiter.general]]</a>
|
| 4 |
|
| 5 |
The class template `regex_iterator` is an iterator adaptor. It
|
| 6 |
represents a new view of an existing iterator sequence, by enumerating
|
| 7 |
all the occurrences of a regular expression within that sequence. A
|
| 8 |
`regex_iterator` uses `regex_search` to find successive regular
|
|
@@ -13,11 +13,11 @@ the iterator finds and stores a value of
|
|
| 13 |
reached (`regex_search` returns `false`), the iterator becomes equal to
|
| 14 |
the end-of-sequence iterator value. The default constructor constructs
|
| 15 |
an end-of-sequence iterator object, which is the only legitimate
|
| 16 |
iterator to be used for the end condition. The result of `operator*` on
|
| 17 |
an end-of-sequence iterator is not defined. For any other iterator value
|
| 18 |
-
a const
|
| 19 |
of `operator->` on an end-of-sequence iterator is not defined. For any
|
| 20 |
other iterator value a `const match_results<BidirectionalIterator>*` is
|
| 21 |
returned. It is impossible to store things into `regex_iterator`s. Two
|
| 22 |
end-of-sequence iterators are always equal. An end-of-sequence iterator
|
| 23 |
is not equal to a non-end-of-sequence iterator. Two non-end-of-sequence
|
|
@@ -70,11 +70,11 @@ iterator holds a *zero-length match* if `match[0].matched == true` and
|
|
| 70 |
|
| 71 |
[*Note 1*: For example, this can occur when the part of the regular
|
| 72 |
expression that matched consists only of an assertion (such as `'^'`,
|
| 73 |
`'$'`, `'\b'`, `'\B'`). — *end note*]
|
| 74 |
|
| 75 |
-
#### Constructors <a id="re.regiter.cnstr">[[re.regiter.cnstr]]</a>
|
| 76 |
|
| 77 |
``` cpp
|
| 78 |
regex_iterator();
|
| 79 |
```
|
| 80 |
|
|
@@ -89,11 +89,11 @@ regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
|
|
| 89 |
*Effects:* Initializes `begin` and `end` to `a` and `b`, respectively,
|
| 90 |
sets `pregex` to `addressof(re)`, sets `flags` to `m`, then calls
|
| 91 |
`regex_search(begin, end, match, *pregex, flags)`. If this call returns
|
| 92 |
`false` the constructor sets `*this` to the end-of-sequence iterator.
|
| 93 |
|
| 94 |
-
#### Comparisons <a id="re.regiter.comp">[[re.regiter.comp]]</a>
|
| 95 |
|
| 96 |
``` cpp
|
| 97 |
bool operator==(const regex_iterator& right) const;
|
| 98 |
```
|
| 99 |
|
|
@@ -106,11 +106,11 @@ iterators or if the following conditions all hold:
|
|
| 106 |
- `flags == right.flags`, and
|
| 107 |
- `match[0] == right.match[0]`;
|
| 108 |
|
| 109 |
otherwise `false`.
|
| 110 |
|
| 111 |
-
#### Indirection <a id="re.regiter.deref">[[re.regiter.deref]]</a>
|
| 112 |
|
| 113 |
``` cpp
|
| 114 |
const value_type& operator*() const;
|
| 115 |
```
|
| 116 |
|
|
@@ -120,11 +120,11 @@ const value_type& operator*() const;
|
|
| 120 |
const value_type* operator->() const;
|
| 121 |
```
|
| 122 |
|
| 123 |
*Returns:* `addressof(match)`.
|
| 124 |
|
| 125 |
-
#### Increment <a id="re.regiter.incr">[[re.regiter.incr]]</a>
|
| 126 |
|
| 127 |
``` cpp
|
| 128 |
regex_iterator& operator++();
|
| 129 |
```
|
| 130 |
|
|
@@ -154,12 +154,12 @@ If the most recent match was not a zero-length match, the operator sets
|
|
| 154 |
`false` the iterator sets `*this` to the end-of-sequence iterator. The
|
| 155 |
iterator then returns `*this`.
|
| 156 |
|
| 157 |
In all cases in which the call to `regex_search` returns `true`,
|
| 158 |
`match.prefix().first` shall be equal to the previous value of
|
| 159 |
-
`match[0].second`, and for each index `i` in the half-open range
|
| 160 |
-
`
|
| 161 |
`match.position(i)` shall return `distance(begin, match[i].first)`.
|
| 162 |
|
| 163 |
[*Note 1*: This means that `match.position(i)` gives the offset from
|
| 164 |
the beginning of the target sequence, which is often not the same as the
|
| 165 |
offset from the sequence passed in the call to
|
|
|
|
| 1 |
+
#### Class template `regex_iterator` <a id="re.regiter">[[re.regiter]]</a>
|
| 2 |
|
| 3 |
+
##### General <a id="re.regiter.general">[[re.regiter.general]]</a>
|
| 4 |
|
| 5 |
The class template `regex_iterator` is an iterator adaptor. It
|
| 6 |
represents a new view of an existing iterator sequence, by enumerating
|
| 7 |
all the occurrences of a regular expression within that sequence. A
|
| 8 |
`regex_iterator` uses `regex_search` to find successive regular
|
|
|
|
| 13 |
reached (`regex_search` returns `false`), the iterator becomes equal to
|
| 14 |
the end-of-sequence iterator value. The default constructor constructs
|
| 15 |
an end-of-sequence iterator object, which is the only legitimate
|
| 16 |
iterator to be used for the end condition. The result of `operator*` on
|
| 17 |
an end-of-sequence iterator is not defined. For any other iterator value
|
| 18 |
+
a `const match_results<BidirectionalIterator>&` is returned. The result
|
| 19 |
of `operator->` on an end-of-sequence iterator is not defined. For any
|
| 20 |
other iterator value a `const match_results<BidirectionalIterator>*` is
|
| 21 |
returned. It is impossible to store things into `regex_iterator`s. Two
|
| 22 |
end-of-sequence iterators are always equal. An end-of-sequence iterator
|
| 23 |
is not equal to a non-end-of-sequence iterator. Two non-end-of-sequence
|
|
|
|
| 70 |
|
| 71 |
[*Note 1*: For example, this can occur when the part of the regular
|
| 72 |
expression that matched consists only of an assertion (such as `'^'`,
|
| 73 |
`'$'`, `'\b'`, `'\B'`). — *end note*]
|
| 74 |
|
| 75 |
+
##### Constructors <a id="re.regiter.cnstr">[[re.regiter.cnstr]]</a>
|
| 76 |
|
| 77 |
``` cpp
|
| 78 |
regex_iterator();
|
| 79 |
```
|
| 80 |
|
|
|
|
| 89 |
*Effects:* Initializes `begin` and `end` to `a` and `b`, respectively,
|
| 90 |
sets `pregex` to `addressof(re)`, sets `flags` to `m`, then calls
|
| 91 |
`regex_search(begin, end, match, *pregex, flags)`. If this call returns
|
| 92 |
`false` the constructor sets `*this` to the end-of-sequence iterator.
|
| 93 |
|
| 94 |
+
##### Comparisons <a id="re.regiter.comp">[[re.regiter.comp]]</a>
|
| 95 |
|
| 96 |
``` cpp
|
| 97 |
bool operator==(const regex_iterator& right) const;
|
| 98 |
```
|
| 99 |
|
|
|
|
| 106 |
- `flags == right.flags`, and
|
| 107 |
- `match[0] == right.match[0]`;
|
| 108 |
|
| 109 |
otherwise `false`.
|
| 110 |
|
| 111 |
+
##### Indirection <a id="re.regiter.deref">[[re.regiter.deref]]</a>
|
| 112 |
|
| 113 |
``` cpp
|
| 114 |
const value_type& operator*() const;
|
| 115 |
```
|
| 116 |
|
|
|
|
| 120 |
const value_type* operator->() const;
|
| 121 |
```
|
| 122 |
|
| 123 |
*Returns:* `addressof(match)`.
|
| 124 |
|
| 125 |
+
##### Increment <a id="re.regiter.incr">[[re.regiter.incr]]</a>
|
| 126 |
|
| 127 |
``` cpp
|
| 128 |
regex_iterator& operator++();
|
| 129 |
```
|
| 130 |
|
|
|
|
| 154 |
`false` the iterator sets `*this` to the end-of-sequence iterator. The
|
| 155 |
iterator then returns `*this`.
|
| 156 |
|
| 157 |
In all cases in which the call to `regex_search` returns `true`,
|
| 158 |
`match.prefix().first` shall be equal to the previous value of
|
| 159 |
+
`match[0].second`, and for each index `i` in the half-open range \[`0`,
|
| 160 |
+
`match.size()`) for which `match[i].matched` is `true`,
|
| 161 |
`match.position(i)` shall return `distance(begin, match[i].first)`.
|
| 162 |
|
| 163 |
[*Note 1*: This means that `match.position(i)` gives the offset from
|
| 164 |
the beginning of the target sequence, which is often not the same as the
|
| 165 |
offset from the sequence passed in the call to
|