From Jason Turner

[re.submatch]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpgsi4q6be/{from.md → to.md} +79 -69
tmp/tmpgsi4q6be/{from.md → to.md} RENAMED
@@ -4,18 +4,18 @@ Class template `sub_match` denotes the sequence of characters matched by
4
  a particular marked sub-expression.
5
 
6
  ``` cpp
7
  namespace std {
8
  template <class BidirectionalIterator>
9
- class sub_match : public std::pair<BidirectionalIterator, BidirectionalIterator> {
10
  public:
11
- typedef typename iterator_traits<BidirectionalIterator>::
12
- value_type value_type;
13
- typedef typename iterator_traits<BidirectionalIterator>::
14
- difference_type difference_type;
15
- typedef BidirectionalIterator iterator;
16
- typedef basic_string<value_type> string_type;
17
 
18
  bool matched;
19
 
20
  constexpr sub_match();
21
 
@@ -41,23 +41,23 @@ member `matched`.
41
 
42
  ``` cpp
43
  difference_type length() const;
44
  ```
45
 
46
- *Returns:* `(matched ? distance(first, second) : 0)`.
47
 
48
  ``` cpp
49
  operator string_type() const;
50
  ```
51
 
52
- *Returns:* `matched ? string_type(first, second) : string_type()`.
53
 
54
  ``` cpp
55
  string_type str() const;
56
  ```
57
 
58
- *Returns:* `matched ? string_type(first, second) : string_type()`.
59
 
60
  ``` cpp
61
  int compare(const sub_match& s) const;
62
  ```
63
 
@@ -120,320 +120,330 @@ template <class BiIter>
120
  *Returns:* `lhs.compare(rhs) > 0`.
121
 
122
  ``` cpp
123
  template <class BiIter, class ST, class SA>
124
  bool operator==(
125
- const basic_string<
126
- typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
127
  const sub_match<BiIter>& rhs);
128
  ```
129
 
130
- *Returns:* `rhs.compare(lhs.c_str()) == 0`.
 
 
 
 
131
 
132
  ``` cpp
133
  template <class BiIter, class ST, class SA>
134
  bool operator!=(
135
- const basic_string<
136
- typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
137
  const sub_match<BiIter>& rhs);
138
  ```
139
 
140
  *Returns:* `!(lhs == rhs)`.
141
 
142
  ``` cpp
143
  template <class BiIter, class ST, class SA>
144
  bool operator<(
145
- const basic_string<
146
- typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
147
  const sub_match<BiIter>& rhs);
148
  ```
149
 
150
- *Returns:* `rhs.compare(lhs.c_str()) > 0`.
 
 
 
 
151
 
152
  ``` cpp
153
  template <class BiIter, class ST, class SA>
154
  bool operator>(
155
- const basic_string<
156
- typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
157
  const sub_match<BiIter>& rhs);
158
  ```
159
 
160
  *Returns:* `rhs < lhs`.
161
 
162
  ``` cpp
163
  template <class BiIter, class ST, class SA>
164
  bool operator>=(
165
- const basic_string<
166
- typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
167
  const sub_match<BiIter>& rhs);
168
  ```
169
 
170
  *Returns:* `!(lhs < rhs)`.
171
 
172
  ``` cpp
173
  template <class BiIter, class ST, class SA>
174
  bool operator<=(
175
- const basic_string<
176
- typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
177
  const sub_match<BiIter>& rhs);
178
  ```
179
 
180
  *Returns:* `!(rhs < lhs)`.
181
 
182
  ``` cpp
183
  template <class BiIter, class ST, class SA>
184
- bool operator==(const sub_match<BiIter>& lhs,
185
- const basic_string<
186
- typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
187
  ```
188
 
189
- *Returns:* `lhs.compare(rhs.c_str()) == 0`.
 
 
 
 
190
 
191
  ``` cpp
192
  template <class BiIter, class ST, class SA>
193
- bool operator!=(const sub_match<BiIter>& lhs,
194
- const basic_string<
195
- typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
196
  ```
197
 
198
  *Returns:* `!(lhs == rhs)`.
199
 
200
  ``` cpp
201
  template <class BiIter, class ST, class SA>
202
- bool operator<(const sub_match<BiIter>& lhs,
203
- const basic_string<
204
- typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
205
  ```
206
 
207
- *Returns:* `lhs.compare(rhs.c_str()) < 0`.
 
 
 
 
208
 
209
  ``` cpp
210
  template <class BiIter, class ST, class SA>
211
- bool operator>(const sub_match<BiIter>& lhs,
212
- const basic_string<
213
- typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
214
  ```
215
 
216
  *Returns:* `rhs < lhs`.
217
 
218
  ``` cpp
219
  template <class BiIter, class ST, class SA>
220
- bool operator>=(const sub_match<BiIter>& lhs,
221
- const basic_string<
222
- typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
223
  ```
224
 
225
  *Returns:* `!(lhs < rhs)`.
226
 
227
  ``` cpp
228
  template <class BiIter, class ST, class SA>
229
- bool operator<=(const sub_match<BiIter>& lhs,
230
- const basic_string<
231
- typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
232
  ```
233
 
234
  *Returns:* `!(rhs < lhs)`.
235
 
236
  ``` cpp
237
  template <class BiIter>
238
- bool operator==(typename iterator_traits<BiIter>::value_type const* lhs,
239
  const sub_match<BiIter>& rhs);
240
  ```
241
 
242
  *Returns:* `rhs.compare(lhs) == 0`.
243
 
244
  ``` cpp
245
  template <class BiIter>
246
- bool operator!=(typename iterator_traits<BiIter>::value_type const* lhs,
247
  const sub_match<BiIter>& rhs);
248
  ```
249
 
250
  *Returns:* `!(lhs == rhs)`.
251
 
252
  ``` cpp
253
  template <class BiIter>
254
- bool operator<(typename iterator_traits<BiIter>::value_type const* lhs,
255
  const sub_match<BiIter>& rhs);
256
  ```
257
 
258
  *Returns:* `rhs.compare(lhs) > 0`.
259
 
260
  ``` cpp
261
  template <class BiIter>
262
- bool operator>(typename iterator_traits<BiIter>::value_type const* lhs,
263
  const sub_match<BiIter>& rhs);
264
  ```
265
 
266
  *Returns:* `rhs < lhs`.
267
 
268
  ``` cpp
269
  template <class BiIter>
270
- bool operator>=(typename iterator_traits<BiIter>::value_type const* lhs,
271
  const sub_match<BiIter>& rhs);
272
  ```
273
 
274
  *Returns:* `!(lhs < rhs)`.
275
 
276
  ``` cpp
277
  template <class BiIter>
278
- bool operator<=(typename iterator_traits<BiIter>::value_type const* lhs,
279
  const sub_match<BiIter>& rhs);
280
  ```
281
 
282
  *Returns:* `!(rhs < lhs)`.
283
 
284
  ``` cpp
285
  template <class BiIter>
286
  bool operator==(const sub_match<BiIter>& lhs,
287
- typename iterator_traits<BiIter>::value_type const* rhs);
288
  ```
289
 
290
  *Returns:* `lhs.compare(rhs) == 0`.
291
 
292
  ``` cpp
293
  template <class BiIter>
294
  bool operator!=(const sub_match<BiIter>& lhs,
295
- typename iterator_traits<BiIter>::value_type const* rhs);
296
  ```
297
 
298
  *Returns:* `!(lhs == rhs)`.
299
 
300
  ``` cpp
301
  template <class BiIter>
302
  bool operator<(const sub_match<BiIter>& lhs,
303
- typename iterator_traits<BiIter>::value_type const* rhs);
304
  ```
305
 
306
  *Returns:* `lhs.compare(rhs) < 0`.
307
 
308
  ``` cpp
309
  template <class BiIter>
310
  bool operator>(const sub_match<BiIter>& lhs,
311
- typename iterator_traits<BiIter>::value_type const* rhs);
312
  ```
313
 
314
  *Returns:* `rhs < lhs`.
315
 
316
  ``` cpp
317
  template <class BiIter>
318
  bool operator>=(const sub_match<BiIter>& lhs,
319
- typename iterator_traits<BiIter>::value_type const* rhs);
320
  ```
321
 
322
  *Returns:* `!(lhs < rhs)`.
323
 
324
  ``` cpp
325
  template <class BiIter>
326
  bool operator<=(const sub_match<BiIter>& lhs,
327
- typename iterator_traits<BiIter>::value_type const* rhs);
328
  ```
329
 
330
  *Returns:* `!(rhs < lhs)`.
331
 
332
  ``` cpp
333
  template <class BiIter>
334
- bool operator==(typename iterator_traits<BiIter>::value_type const& lhs,
335
  const sub_match<BiIter>& rhs);
336
  ```
337
 
338
  *Returns:*
339
  `rhs.compare(typename sub_match<BiIter>::string_type(1, lhs)) == 0`.
340
 
341
  ``` cpp
342
  template <class BiIter>
343
- bool operator!=(typename iterator_traits<BiIter>::value_type const& lhs,
344
  const sub_match<BiIter>& rhs);
345
  ```
346
 
347
  *Returns:* `!(lhs == rhs)`.
348
 
349
  ``` cpp
350
  template <class BiIter>
351
- bool operator<(typename iterator_traits<BiIter>::value_type const& lhs,
352
  const sub_match<BiIter>& rhs);
353
  ```
354
 
355
  *Returns:*
356
  `rhs.compare(typename sub_match<BiIter>::string_type(1, lhs)) > 0`.
357
 
358
  ``` cpp
359
  template <class BiIter>
360
- bool operator>(typename iterator_traits<BiIter>::value_type const& lhs,
361
  const sub_match<BiIter>& rhs);
362
  ```
363
 
364
  *Returns:* `rhs < lhs`.
365
 
366
  ``` cpp
367
  template <class BiIter>
368
- bool operator>=(typename iterator_traits<BiIter>::value_type const& lhs,
369
  const sub_match<BiIter>& rhs);
370
  ```
371
 
372
  *Returns:* `!(lhs < rhs)`.
373
 
374
  ``` cpp
375
  template <class BiIter>
376
- bool operator<=(typename iterator_traits<BiIter>::value_type const& lhs,
377
  const sub_match<BiIter>& rhs);
378
  ```
379
 
380
  *Returns:* `!(rhs < lhs)`.
381
 
382
  ``` cpp
383
  template <class BiIter>
384
  bool operator==(const sub_match<BiIter>& lhs,
385
- typename iterator_traits<BiIter>::value_type const& rhs);
386
  ```
387
 
388
  *Returns:*
389
  `lhs.compare(typename sub_match<BiIter>::string_type(1, rhs)) == 0`.
390
 
391
  ``` cpp
392
  template <class BiIter>
393
  bool operator!=(const sub_match<BiIter>& lhs,
394
- typename iterator_traits<BiIter>::value_type const& rhs);
395
  ```
396
 
397
  *Returns:* `!(lhs == rhs)`.
398
 
399
  ``` cpp
400
  template <class BiIter>
401
  bool operator<(const sub_match<BiIter>& lhs,
402
- typename iterator_traits<BiIter>::value_type const& rhs);
403
  ```
404
 
405
  *Returns:*
406
  `lhs.compare(typename sub_match<BiIter>::string_type(1, rhs)) < 0`.
407
 
408
  ``` cpp
409
  template <class BiIter>
410
  bool operator>(const sub_match<BiIter>& lhs,
411
- typename iterator_traits<BiIter>::value_type const& rhs);
412
  ```
413
 
414
  *Returns:* `rhs < lhs`.
415
 
416
  ``` cpp
417
  template <class BiIter>
418
  bool operator>=(const sub_match<BiIter>& lhs,
419
- typename iterator_traits<BiIter>::value_type const& rhs);
420
  ```
421
 
422
  *Returns:* `!(lhs < rhs)`.
423
 
424
  ``` cpp
425
  template <class BiIter>
426
  bool operator<=(const sub_match<BiIter>& lhs,
427
- typename iterator_traits<BiIter>::value_type const& rhs);
428
  ```
429
 
430
  *Returns:* `!(rhs < lhs)`.
431
 
432
  ``` cpp
433
  template <class charT, class ST, class BiIter>
434
  basic_ostream<charT, ST>&
435
  operator<<(basic_ostream<charT, ST>& os, const sub_match<BiIter>& m);
436
  ```
437
 
438
- *Returns:* `(os << m.str())`.
439
 
 
4
  a particular marked sub-expression.
5
 
6
  ``` cpp
7
  namespace std {
8
  template <class BidirectionalIterator>
9
+ class sub_match : public pair<BidirectionalIterator, BidirectionalIterator> {
10
  public:
11
+ using value_type =
12
+ typename iterator_traits<BidirectionalIterator>::value_type;
13
+ using difference_type =
14
+ typename iterator_traits<BidirectionalIterator>::difference_type;
15
+ using iterator = BidirectionalIterator;
16
+ using string_type = basic_string<value_type>;
17
 
18
  bool matched;
19
 
20
  constexpr sub_match();
21
 
 
41
 
42
  ``` cpp
43
  difference_type length() const;
44
  ```
45
 
46
+ *Returns:* `matched ? distance(first, second) : 0`.
47
 
48
  ``` cpp
49
  operator string_type() const;
50
  ```
51
 
52
+ *Returns:* `matched ? string_type(first, second) : string_type()`.
53
 
54
  ``` cpp
55
  string_type str() const;
56
  ```
57
 
58
+ *Returns:* `matched ? string_type(first, second) : string_type()`.
59
 
60
  ``` cpp
61
  int compare(const sub_match& s) const;
62
  ```
63
 
 
120
  *Returns:* `lhs.compare(rhs) > 0`.
121
 
122
  ``` cpp
123
  template <class BiIter, class ST, class SA>
124
  bool operator==(
125
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
 
126
  const sub_match<BiIter>& rhs);
127
  ```
128
 
129
+ *Returns:*
130
+
131
+ ``` cpp
132
+ rhs.compare(typename sub_match<BiIter>::string_type(lhs.data(), lhs.size())) == 0
133
+ ```
134
 
135
  ``` cpp
136
  template <class BiIter, class ST, class SA>
137
  bool operator!=(
138
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
 
139
  const sub_match<BiIter>& rhs);
140
  ```
141
 
142
  *Returns:* `!(lhs == rhs)`.
143
 
144
  ``` cpp
145
  template <class BiIter, class ST, class SA>
146
  bool operator<(
147
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
 
148
  const sub_match<BiIter>& rhs);
149
  ```
150
 
151
+ *Returns:*
152
+
153
+ ``` cpp
154
+ rhs.compare(typename sub_match<BiIter>::string_type(lhs.data(), lhs.size())) > 0
155
+ ```
156
 
157
  ``` cpp
158
  template <class BiIter, class ST, class SA>
159
  bool operator>(
160
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
 
161
  const sub_match<BiIter>& rhs);
162
  ```
163
 
164
  *Returns:* `rhs < lhs`.
165
 
166
  ``` cpp
167
  template <class BiIter, class ST, class SA>
168
  bool operator>=(
169
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
 
170
  const sub_match<BiIter>& rhs);
171
  ```
172
 
173
  *Returns:* `!(lhs < rhs)`.
174
 
175
  ``` cpp
176
  template <class BiIter, class ST, class SA>
177
  bool operator<=(
178
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,
 
179
  const sub_match<BiIter>& rhs);
180
  ```
181
 
182
  *Returns:* `!(rhs < lhs)`.
183
 
184
  ``` cpp
185
  template <class BiIter, class ST, class SA>
186
+ bool operator==(
187
+ const sub_match<BiIter>& lhs,
188
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
189
  ```
190
 
191
+ *Returns:*
192
+
193
+ ``` cpp
194
+ lhs.compare(typename sub_match<BiIter>::string_type(rhs.data(), rhs.size())) == 0
195
+ ```
196
 
197
  ``` cpp
198
  template <class BiIter, class ST, class SA>
199
+ bool operator!=(
200
+ const sub_match<BiIter>& lhs,
201
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
202
  ```
203
 
204
  *Returns:* `!(lhs == rhs)`.
205
 
206
  ``` cpp
207
  template <class BiIter, class ST, class SA>
208
+ bool operator<(
209
+ const sub_match<BiIter>& lhs,
210
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
211
  ```
212
 
213
+ *Returns:*
214
+
215
+ ``` cpp
216
+ lhs.compare(typename sub_match<BiIter>::string_type(rhs.data(), rhs.size())) < 0
217
+ ```
218
 
219
  ``` cpp
220
  template <class BiIter, class ST, class SA>
221
+ bool operator>(
222
+ const sub_match<BiIter>& lhs,
223
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
224
  ```
225
 
226
  *Returns:* `rhs < lhs`.
227
 
228
  ``` cpp
229
  template <class BiIter, class ST, class SA>
230
+ bool operator>=(
231
+ const sub_match<BiIter>& lhs,
232
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
233
  ```
234
 
235
  *Returns:* `!(lhs < rhs)`.
236
 
237
  ``` cpp
238
  template <class BiIter, class ST, class SA>
239
+ bool operator<=(
240
+ const sub_match<BiIter>& lhs,
241
+ const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);
242
  ```
243
 
244
  *Returns:* `!(rhs < lhs)`.
245
 
246
  ``` cpp
247
  template <class BiIter>
248
+ bool operator==(const typename iterator_traits<BiIter>::value_type* lhs,
249
  const sub_match<BiIter>& rhs);
250
  ```
251
 
252
  *Returns:* `rhs.compare(lhs) == 0`.
253
 
254
  ``` cpp
255
  template <class BiIter>
256
+ bool operator!=(const typename iterator_traits<BiIter>::value_type* lhs,
257
  const sub_match<BiIter>& rhs);
258
  ```
259
 
260
  *Returns:* `!(lhs == rhs)`.
261
 
262
  ``` cpp
263
  template <class BiIter>
264
+ bool operator<(const typename iterator_traits<BiIter>::value_type* lhs,
265
  const sub_match<BiIter>& rhs);
266
  ```
267
 
268
  *Returns:* `rhs.compare(lhs) > 0`.
269
 
270
  ``` cpp
271
  template <class BiIter>
272
+ bool operator>(const typename iterator_traits<BiIter>::value_type* lhs,
273
  const sub_match<BiIter>& rhs);
274
  ```
275
 
276
  *Returns:* `rhs < lhs`.
277
 
278
  ``` cpp
279
  template <class BiIter>
280
+ bool operator>=(const typename iterator_traits<BiIter>::value_type* lhs,
281
  const sub_match<BiIter>& rhs);
282
  ```
283
 
284
  *Returns:* `!(lhs < rhs)`.
285
 
286
  ``` cpp
287
  template <class BiIter>
288
+ bool operator<=(const typename iterator_traits<BiIter>::value_type* lhs,
289
  const sub_match<BiIter>& rhs);
290
  ```
291
 
292
  *Returns:* `!(rhs < lhs)`.
293
 
294
  ``` cpp
295
  template <class BiIter>
296
  bool operator==(const sub_match<BiIter>& lhs,
297
+ const typename iterator_traits<BiIter>::value_type* rhs);
298
  ```
299
 
300
  *Returns:* `lhs.compare(rhs) == 0`.
301
 
302
  ``` cpp
303
  template <class BiIter>
304
  bool operator!=(const sub_match<BiIter>& lhs,
305
+ const typename iterator_traits<BiIter>::value_type* rhs);
306
  ```
307
 
308
  *Returns:* `!(lhs == rhs)`.
309
 
310
  ``` cpp
311
  template <class BiIter>
312
  bool operator<(const sub_match<BiIter>& lhs,
313
+ const typename iterator_traits<BiIter>::value_type* rhs);
314
  ```
315
 
316
  *Returns:* `lhs.compare(rhs) < 0`.
317
 
318
  ``` cpp
319
  template <class BiIter>
320
  bool operator>(const sub_match<BiIter>& lhs,
321
+ const typename iterator_traits<BiIter>::value_type* rhs);
322
  ```
323
 
324
  *Returns:* `rhs < lhs`.
325
 
326
  ``` cpp
327
  template <class BiIter>
328
  bool operator>=(const sub_match<BiIter>& lhs,
329
+ const typename iterator_traits<BiIter>::value_type* rhs);
330
  ```
331
 
332
  *Returns:* `!(lhs < rhs)`.
333
 
334
  ``` cpp
335
  template <class BiIter>
336
  bool operator<=(const sub_match<BiIter>& lhs,
337
+ const typename iterator_traits<BiIter>::value_type* rhs);
338
  ```
339
 
340
  *Returns:* `!(rhs < lhs)`.
341
 
342
  ``` cpp
343
  template <class BiIter>
344
+ bool operator==(const typename iterator_traits<BiIter>::value_type& lhs,
345
  const sub_match<BiIter>& rhs);
346
  ```
347
 
348
  *Returns:*
349
  `rhs.compare(typename sub_match<BiIter>::string_type(1, lhs)) == 0`.
350
 
351
  ``` cpp
352
  template <class BiIter>
353
+ bool operator!=(const typename iterator_traits<BiIter>::value_type& lhs,
354
  const sub_match<BiIter>& rhs);
355
  ```
356
 
357
  *Returns:* `!(lhs == rhs)`.
358
 
359
  ``` cpp
360
  template <class BiIter>
361
+ bool operator<(const typename iterator_traits<BiIter>::value_type& lhs,
362
  const sub_match<BiIter>& rhs);
363
  ```
364
 
365
  *Returns:*
366
  `rhs.compare(typename sub_match<BiIter>::string_type(1, lhs)) > 0`.
367
 
368
  ``` cpp
369
  template <class BiIter>
370
+ bool operator>(const typename iterator_traits<BiIter>::value_type& lhs,
371
  const sub_match<BiIter>& rhs);
372
  ```
373
 
374
  *Returns:* `rhs < lhs`.
375
 
376
  ``` cpp
377
  template <class BiIter>
378
+ bool operator>=(const typename iterator_traits<BiIter>::value_type& lhs,
379
  const sub_match<BiIter>& rhs);
380
  ```
381
 
382
  *Returns:* `!(lhs < rhs)`.
383
 
384
  ``` cpp
385
  template <class BiIter>
386
+ bool operator<=(const typename iterator_traits<BiIter>::value_type& lhs,
387
  const sub_match<BiIter>& rhs);
388
  ```
389
 
390
  *Returns:* `!(rhs < lhs)`.
391
 
392
  ``` cpp
393
  template <class BiIter>
394
  bool operator==(const sub_match<BiIter>& lhs,
395
+ const typename iterator_traits<BiIter>::value_type& rhs);
396
  ```
397
 
398
  *Returns:*
399
  `lhs.compare(typename sub_match<BiIter>::string_type(1, rhs)) == 0`.
400
 
401
  ``` cpp
402
  template <class BiIter>
403
  bool operator!=(const sub_match<BiIter>& lhs,
404
+ const typename iterator_traits<BiIter>::value_type& rhs);
405
  ```
406
 
407
  *Returns:* `!(lhs == rhs)`.
408
 
409
  ``` cpp
410
  template <class BiIter>
411
  bool operator<(const sub_match<BiIter>& lhs,
412
+ const typename iterator_traits<BiIter>::value_type& rhs);
413
  ```
414
 
415
  *Returns:*
416
  `lhs.compare(typename sub_match<BiIter>::string_type(1, rhs)) < 0`.
417
 
418
  ``` cpp
419
  template <class BiIter>
420
  bool operator>(const sub_match<BiIter>& lhs,
421
+ const typename iterator_traits<BiIter>::value_type& rhs);
422
  ```
423
 
424
  *Returns:* `rhs < lhs`.
425
 
426
  ``` cpp
427
  template <class BiIter>
428
  bool operator>=(const sub_match<BiIter>& lhs,
429
+ const typename iterator_traits<BiIter>::value_type& rhs);
430
  ```
431
 
432
  *Returns:* `!(lhs < rhs)`.
433
 
434
  ``` cpp
435
  template <class BiIter>
436
  bool operator<=(const sub_match<BiIter>& lhs,
437
+ const typename iterator_traits<BiIter>::value_type& rhs);
438
  ```
439
 
440
  *Returns:* `!(rhs < lhs)`.
441
 
442
  ``` cpp
443
  template <class charT, class ST, class BiIter>
444
  basic_ostream<charT, ST>&
445
  operator<<(basic_ostream<charT, ST>& os, const sub_match<BiIter>& m);
446
  ```
447
 
448
+ *Returns:* `os << m.str()`.
449