From Jason Turner

[re.iter]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpuloo5jks/{from.md → to.md} +40 -15
tmp/tmpuloo5jks/{from.md → to.md} RENAMED
@@ -41,25 +41,28 @@ namespace std {
41
  regex_iterator();
42
  regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
43
  const regex_type& re,
44
  regex_constants::match_flag_type m =
45
  regex_constants::match_default);
 
 
 
 
46
  regex_iterator(const regex_iterator&);
47
  regex_iterator& operator=(const regex_iterator&);
48
  bool operator==(const regex_iterator&) const;
49
  bool operator!=(const regex_iterator&) const;
50
  const value_type& operator*() const;
51
  const value_type* operator->() const;
52
  regex_iterator& operator++();
53
  regex_iterator operator++(int);
54
  private:
55
- // these members are shown for exposition only:
56
- BidirectionalIterator begin;
57
- BidirectionalIterator end;
58
- const regex_type* pregex;
59
- regex_constants::match_flag_type flags;
60
- match_results<BidirectionalIterator> match;
61
  };
62
  }
63
  ```
64
 
65
  An object of type `regex_iterator` that is not an end-of-sequence
@@ -108,11 +111,11 @@ otherwise `false`.
108
  bool operator!=(const regex_iterator& right) const;
109
  ```
110
 
111
  *Returns:* `!(*this == right)`.
112
 
113
- #### `regex_iterator` dereference <a id="re.regiter.deref">[[re.regiter.deref]]</a>
114
 
115
  ``` cpp
116
  const value_type& operator*() const;
117
  ```
118
 
@@ -258,25 +261,47 @@ namespace std {
258
  regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
259
  const regex_type& re,
260
  const int (&submatches)[N],
261
  regex_constants::match_flag_type m =
262
  regex_constants::match_default);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  regex_token_iterator(const regex_token_iterator&);
264
  regex_token_iterator& operator=(const regex_token_iterator&);
265
  bool operator==(const regex_token_iterator&) const;
266
  bool operator!=(const regex_token_iterator&) const;
267
  const value_type& operator*() const;
268
  const value_type* operator->() const;
269
  regex_token_iterator& operator++();
270
  regex_token_iterator operator++(int);
271
- private: // data members for exposition only:
272
- typedef regex_iterator<BidirectionalIterator, charT, traits> position_iterator;
273
- position_iterator position;
274
- const value_type *result;
275
- value_type suffix;
276
- std::size_t N;
277
- std::vector<int> subs;
 
278
  };
279
  }
280
  ```
281
 
282
  A *suffix iterator* is a `regex_token_iterator` object that points to a
@@ -364,11 +389,11 @@ returns `true` if `position == right.position`, `N == right.N`, and
364
  bool operator!=(const regex_token_iterator& right) const;
365
  ```
366
 
367
  *Returns:* `!(*this == right)`.
368
 
369
- #### `regex_token_iterator` dereference <a id="re.tokiter.deref">[[re.tokiter.deref]]</a>
370
 
371
  ``` cpp
372
  const value_type& operator*() const;
373
  ```
374
 
 
41
  regex_iterator();
42
  regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
43
  const regex_type& re,
44
  regex_constants::match_flag_type m =
45
  regex_constants::match_default);
46
+ regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
47
+ const regex_type&& re,
48
+ regex_constants::match_flag_type m =
49
+ regex_constants::match_default) = delete;
50
  regex_iterator(const regex_iterator&);
51
  regex_iterator& operator=(const regex_iterator&);
52
  bool operator==(const regex_iterator&) const;
53
  bool operator!=(const regex_iterator&) const;
54
  const value_type& operator*() const;
55
  const value_type* operator->() const;
56
  regex_iterator& operator++();
57
  regex_iterator operator++(int);
58
  private:
59
+ BidirectionalIterator begin; // exposition only
60
+ BidirectionalIterator end; // exposition only
61
+ const regex_type* pregex; // exposition only
62
+ regex_constants::match_flag_type flags; // exposition only
63
+ match_results<BidirectionalIterator> match; // exposition only
 
64
  };
65
  }
66
  ```
67
 
68
  An object of type `regex_iterator` that is not an end-of-sequence
 
111
  bool operator!=(const regex_iterator& right) const;
112
  ```
113
 
114
  *Returns:* `!(*this == right)`.
115
 
116
+ #### `regex_iterator` indirection <a id="re.regiter.deref">[[re.regiter.deref]]</a>
117
 
118
  ``` cpp
119
  const value_type& operator*() const;
120
  ```
121
 
 
261
  regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
262
  const regex_type& re,
263
  const int (&submatches)[N],
264
  regex_constants::match_flag_type m =
265
  regex_constants::match_default);
266
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
267
+ const regex_type&& re,
268
+ int submatch = 0,
269
+ regex_constants::match_flag_type m =
270
+ regex_constants::match_default) = delete;
271
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
272
+ const regex_type&& re,
273
+ const std::vector<int>& submatches,
274
+ regex_constants::match_flag_type m =
275
+ regex_constants::match_default) = delete;
276
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
277
+ const regex_type&& re,
278
+ initializer_list<int> submatches,
279
+ regex_constants::match_flag_type m =
280
+ regex_constants::match_default) = delete;
281
+ template <std::size_t N>
282
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
283
+ const regex_type&& re,
284
+ const int (&submatches)[N],
285
+ regex_constants::match_flag_type m =
286
+ regex_constants::match_default) = delete;
287
  regex_token_iterator(const regex_token_iterator&);
288
  regex_token_iterator& operator=(const regex_token_iterator&);
289
  bool operator==(const regex_token_iterator&) const;
290
  bool operator!=(const regex_token_iterator&) const;
291
  const value_type& operator*() const;
292
  const value_type* operator->() const;
293
  regex_token_iterator& operator++();
294
  regex_token_iterator operator++(int);
295
+ private:
296
+ typedef
297
+ regex_iterator<BidirectionalIterator, charT, traits> position_iterator; // exposition only
298
+ position_iterator position; // exposition only
299
+ const value_type* result; // exposition only
300
+ value_type suffix; // exposition only
301
+ std::size_t N; // exposition only
302
+ std::vector<int> subs; // exposition only
303
  };
304
  }
305
  ```
306
 
307
  A *suffix iterator* is a `regex_token_iterator` object that points to a
 
389
  bool operator!=(const regex_token_iterator& right) const;
390
  ```
391
 
392
  *Returns:* `!(*this == right)`.
393
 
394
+ #### `regex_token_iterator` indirection <a id="re.tokiter.deref">[[re.tokiter.deref]]</a>
395
 
396
  ``` cpp
397
  const value_type& operator*() const;
398
  ```
399