From Jason Turner

[iterator.range]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp9d5fhwha/{from.md → to.md} +25 -7
tmp/tmp9d5fhwha/{from.md → to.md} RENAMED
@@ -3,12 +3,11 @@
3
  In addition to being available via inclusion of the `<iterator>` header,
4
  the function templates in [[iterator.range]] are available when any of
5
  the following headers are included: `<array>`, `<deque>`,
6
  `<forward_list>`, `<list>`, `<map>`, `<regex>`, `<set>`, `<span>`,
7
  `<string>`, `<string_view>`, `<unordered_map>`, `<unordered_set>`, and
8
- `<vector>`. Each of these templates is a designated customization point
9
- [[namespace.std]].
10
 
11
  ``` cpp
12
  template<class C> constexpr auto begin(C& c) -> decltype(c.begin());
13
  template<class C> constexpr auto begin(const C& c) -> decltype(c.begin());
14
  ```
@@ -181,20 +180,26 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
181
  [basic.lookup.argdep]: basic.md#basic.lookup.argdep
182
  [basic.lookup.unqual]: basic.md#basic.lookup.unqual
183
  [basic.lval]: expr.md#basic.lval
184
  [bidirectional.iterators]: #bidirectional.iterators
185
  [bidirectionaliterator]: #bidirectionaliterator
 
186
  [common.iter.access]: #common.iter.access
187
  [common.iter.cmp]: #common.iter.cmp
188
  [common.iter.const]: #common.iter.const
189
  [common.iter.cust]: #common.iter.cust
190
  [common.iter.nav]: #common.iter.nav
191
  [common.iter.types]: #common.iter.types
192
  [common.iterator]: #common.iterator
193
  [concept.swappable]: concepts.md#concept.swappable
194
- [concept.totallyordered]: concepts.md#concept.totallyordered
195
  [concepts.object]: concepts.md#concepts.object
 
 
 
 
 
 
196
  [containers]: containers.md#containers
197
  [counted.iter.access]: #counted.iter.access
198
  [counted.iter.cmp]: #counted.iter.cmp
199
  [counted.iter.const]: #counted.iter.const
200
  [counted.iter.cust]: #counted.iter.cust
@@ -202,12 +207,13 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
202
  [counted.iter.nav]: #counted.iter.nav
203
  [counted.iterator]: #counted.iterator
204
  [cpp17.copyassignable]: #cpp17.copyassignable
205
  [cpp17.equalitycomparable]: #cpp17.equalitycomparable
206
  [customization.point.object]: library.md#customization.point.object
207
- [default.sentinels]: #default.sentinels
208
- [defns.projection]: library.md#defns.projection
 
209
  [expr.call]: expr.md#expr.call
210
  [expr.const]: expr.md#expr.const
211
  [forward.iterators]: #forward.iterators
212
  [forwarditerator]: #forwarditerator
213
  [front.insert.iter.ops]: #front.insert.iter.ops
@@ -216,22 +222,26 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
216
  [func.def]: utilities.md#func.def
217
  [incrementable.traits]: #incrementable.traits
218
  [indirectcallable]: #indirectcallable
219
  [indirectcallable.general]: #indirectcallable.general
220
  [indirectcallable.indirectinvocable]: #indirectcallable.indirectinvocable
 
221
  [input.iterators]: #input.iterators
222
  [inputiterator]: #inputiterator
223
  [insert.iter.ops]: #insert.iter.ops
224
  [insert.iterator]: #insert.iterator
225
  [insert.iterators]: #insert.iterators
 
226
  [inserter]: #inserter
227
  [iostream.format]: input.md#iostream.format
228
  [istream.iterator]: #istream.iterator
229
  [istream.iterator.cons]: #istream.iterator.cons
 
230
  [istream.iterator.ops]: #istream.iterator.ops
231
  [istreambuf.iterator]: #istreambuf.iterator
232
  [istreambuf.iterator.cons]: #istreambuf.iterator.cons
 
233
  [istreambuf.iterator.ops]: #istreambuf.iterator.ops
234
  [istreambuf.iterator.proxy]: #istreambuf.iterator.proxy
235
  [iterator]: #iterator
236
  [iterator.assoc.types]: #iterator.assoc.types
237
  [iterator.concept.bidir]: #iterator.concept.bidir
@@ -248,16 +258,18 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
248
  [iterator.concept.winc]: #iterator.concept.winc
249
  [iterator.concept.writable]: #iterator.concept.writable
250
  [iterator.concepts]: #iterator.concepts
251
  [iterator.concepts.general]: #iterator.concepts.general
252
  [iterator.cpp17]: #iterator.cpp17
 
253
  [iterator.cust]: #iterator.cust
254
  [iterator.cust.move]: #iterator.cust.move
255
  [iterator.cust.swap]: #iterator.cust.swap
256
  [iterator.iterators]: #iterator.iterators
257
  [iterator.operations]: #iterator.operations
258
  [iterator.primitives]: #iterator.primitives
 
259
  [iterator.range]: #iterator.range
260
  [iterator.requirements]: #iterator.requirements
261
  [iterator.requirements.general]: #iterator.requirements.general
262
  [iterator.synopsis]: #iterator.synopsis
263
  [iterator.traits]: #iterator.traits
@@ -275,19 +287,23 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
275
  [move.iter.op.comp]: #move.iter.op.comp
276
  [move.iter.op.conv]: #move.iter.op.conv
277
  [move.iter.requirements]: #move.iter.requirements
278
  [move.iterator]: #move.iterator
279
  [move.iterators]: #move.iterators
 
280
  [move.sent.ops]: #move.sent.ops
281
  [move.sentinel]: #move.sentinel
282
  [namespace.std]: library.md#namespace.std
 
283
  [ostream.iterator]: #ostream.iterator
284
  [ostream.iterator.cons.des]: #ostream.iterator.cons.des
 
285
  [ostream.iterator.ops]: #ostream.iterator.ops
286
  [ostreambuf.iter.cons]: #ostreambuf.iter.cons
287
  [ostreambuf.iter.ops]: #ostreambuf.iter.ops
288
  [ostreambuf.iterator]: #ostreambuf.iterator
 
289
  [output.iterators]: #output.iterators
290
  [outputiterator]: #outputiterator
291
  [predef.iterators]: #predef.iterators
292
  [projected]: #projected
293
  [random.access.iterators]: #random.access.iterators
@@ -296,10 +312,11 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
296
  [range.iter.op.advance]: #range.iter.op.advance
297
  [range.iter.op.distance]: #range.iter.op.distance
298
  [range.iter.op.next]: #range.iter.op.next
299
  [range.iter.op.prev]: #range.iter.op.prev
300
  [range.iter.ops]: #range.iter.ops
 
301
  [ranges]: ranges.md#ranges
302
  [readable.traits]: #readable.traits
303
  [reverse.iter.cmp]: #reverse.iter.cmp
304
  [reverse.iter.cons]: #reverse.iter.cons
305
  [reverse.iter.conv]: #reverse.iter.conv
@@ -307,22 +324,23 @@ template<class E> constexpr const E* data(initializer_list<E> il) noexcept;
307
  [reverse.iter.nav]: #reverse.iter.nav
308
  [reverse.iter.nonmember]: #reverse.iter.nonmember
309
  [reverse.iter.requirements]: #reverse.iter.requirements
310
  [reverse.iterator]: #reverse.iterator
311
  [reverse.iterators]: #reverse.iterators
 
312
  [std.iterator.tags]: #std.iterator.tags
313
  [stream.buffers]: input.md#stream.buffers
314
  [stream.iterators]: #stream.iterators
 
315
  [swappable.requirements]: library.md#swappable.requirements
316
  [temp.deduct]: temp.md#temp.deduct
317
  [temp.func.order]: temp.md#temp.func.order
318
  [temp.inst]: temp.md#temp.inst
319
  [unreachable.sentinel]: #unreachable.sentinel
320
- [unreachable.sentinels]: #unreachable.sentinels
321
  [utility.arg.requirements]: library.md#utility.arg.requirements
322
 
323
- [^1]: The sentinel denoting the end of a range may have the same type as
324
  the iterator denoting the beginning of the range, or a different
325
  type.
326
 
327
  [^2]: This definition applies to pointers, since pointers are iterators.
328
  The effect of dereferencing an iterator that has been invalidated is
 
3
  In addition to being available via inclusion of the `<iterator>` header,
4
  the function templates in [[iterator.range]] are available when any of
5
  the following headers are included: `<array>`, `<deque>`,
6
  `<forward_list>`, `<list>`, `<map>`, `<regex>`, `<set>`, `<span>`,
7
  `<string>`, `<string_view>`, `<unordered_map>`, `<unordered_set>`, and
8
+ `<vector>`.
 
9
 
10
  ``` cpp
11
  template<class C> constexpr auto begin(C& c) -> decltype(c.begin());
12
  template<class C> constexpr auto begin(const C& c) -> decltype(c.begin());
13
  ```
 
180
  [basic.lookup.argdep]: basic.md#basic.lookup.argdep
181
  [basic.lookup.unqual]: basic.md#basic.lookup.unqual
182
  [basic.lval]: expr.md#basic.lval
183
  [bidirectional.iterators]: #bidirectional.iterators
184
  [bidirectionaliterator]: #bidirectionaliterator
185
+ [cmp.concept]: support.md#cmp.concept
186
  [common.iter.access]: #common.iter.access
187
  [common.iter.cmp]: #common.iter.cmp
188
  [common.iter.const]: #common.iter.const
189
  [common.iter.cust]: #common.iter.cust
190
  [common.iter.nav]: #common.iter.nav
191
  [common.iter.types]: #common.iter.types
192
  [common.iterator]: #common.iterator
193
  [concept.swappable]: concepts.md#concept.swappable
 
194
  [concepts.object]: concepts.md#concepts.object
195
+ [const.iterators]: #const.iterators
196
+ [const.iterators.alias]: #const.iterators.alias
197
+ [const.iterators.general]: #const.iterators.general
198
+ [const.iterators.iterator]: #const.iterators.iterator
199
+ [const.iterators.ops]: #const.iterators.ops
200
+ [const.iterators.types]: #const.iterators.types
201
  [containers]: containers.md#containers
202
  [counted.iter.access]: #counted.iter.access
203
  [counted.iter.cmp]: #counted.iter.cmp
204
  [counted.iter.const]: #counted.iter.const
205
  [counted.iter.cust]: #counted.iter.cust
 
207
  [counted.iter.nav]: #counted.iter.nav
208
  [counted.iterator]: #counted.iterator
209
  [cpp17.copyassignable]: #cpp17.copyassignable
210
  [cpp17.equalitycomparable]: #cpp17.equalitycomparable
211
  [customization.point.object]: library.md#customization.point.object
212
+ [default.sentinel]: #default.sentinel
213
+ [defns.const.subexpr]: intro.md#defns.const.subexpr
214
+ [defns.projection]: intro.md#defns.projection
215
  [expr.call]: expr.md#expr.call
216
  [expr.const]: expr.md#expr.const
217
  [forward.iterators]: #forward.iterators
218
  [forwarditerator]: #forwarditerator
219
  [front.insert.iter.ops]: #front.insert.iter.ops
 
222
  [func.def]: utilities.md#func.def
223
  [incrementable.traits]: #incrementable.traits
224
  [indirectcallable]: #indirectcallable
225
  [indirectcallable.general]: #indirectcallable.general
226
  [indirectcallable.indirectinvocable]: #indirectcallable.indirectinvocable
227
+ [indirectcallable.traits]: #indirectcallable.traits
228
  [input.iterators]: #input.iterators
229
  [inputiterator]: #inputiterator
230
  [insert.iter.ops]: #insert.iter.ops
231
  [insert.iterator]: #insert.iterator
232
  [insert.iterators]: #insert.iterators
233
+ [insert.iterators.general]: #insert.iterators.general
234
  [inserter]: #inserter
235
  [iostream.format]: input.md#iostream.format
236
  [istream.iterator]: #istream.iterator
237
  [istream.iterator.cons]: #istream.iterator.cons
238
+ [istream.iterator.general]: #istream.iterator.general
239
  [istream.iterator.ops]: #istream.iterator.ops
240
  [istreambuf.iterator]: #istreambuf.iterator
241
  [istreambuf.iterator.cons]: #istreambuf.iterator.cons
242
+ [istreambuf.iterator.general]: #istreambuf.iterator.general
243
  [istreambuf.iterator.ops]: #istreambuf.iterator.ops
244
  [istreambuf.iterator.proxy]: #istreambuf.iterator.proxy
245
  [iterator]: #iterator
246
  [iterator.assoc.types]: #iterator.assoc.types
247
  [iterator.concept.bidir]: #iterator.concept.bidir
 
258
  [iterator.concept.winc]: #iterator.concept.winc
259
  [iterator.concept.writable]: #iterator.concept.writable
260
  [iterator.concepts]: #iterator.concepts
261
  [iterator.concepts.general]: #iterator.concepts.general
262
  [iterator.cpp17]: #iterator.cpp17
263
+ [iterator.cpp17.general]: #iterator.cpp17.general
264
  [iterator.cust]: #iterator.cust
265
  [iterator.cust.move]: #iterator.cust.move
266
  [iterator.cust.swap]: #iterator.cust.swap
267
  [iterator.iterators]: #iterator.iterators
268
  [iterator.operations]: #iterator.operations
269
  [iterator.primitives]: #iterator.primitives
270
+ [iterator.primitives.general]: #iterator.primitives.general
271
  [iterator.range]: #iterator.range
272
  [iterator.requirements]: #iterator.requirements
273
  [iterator.requirements.general]: #iterator.requirements.general
274
  [iterator.synopsis]: #iterator.synopsis
275
  [iterator.traits]: #iterator.traits
 
287
  [move.iter.op.comp]: #move.iter.op.comp
288
  [move.iter.op.conv]: #move.iter.op.conv
289
  [move.iter.requirements]: #move.iter.requirements
290
  [move.iterator]: #move.iterator
291
  [move.iterators]: #move.iterators
292
+ [move.iterators.general]: #move.iterators.general
293
  [move.sent.ops]: #move.sent.ops
294
  [move.sentinel]: #move.sentinel
295
  [namespace.std]: library.md#namespace.std
296
+ [numeric.limits]: support.md#numeric.limits
297
  [ostream.iterator]: #ostream.iterator
298
  [ostream.iterator.cons.des]: #ostream.iterator.cons.des
299
+ [ostream.iterator.general]: #ostream.iterator.general
300
  [ostream.iterator.ops]: #ostream.iterator.ops
301
  [ostreambuf.iter.cons]: #ostreambuf.iter.cons
302
  [ostreambuf.iter.ops]: #ostreambuf.iter.ops
303
  [ostreambuf.iterator]: #ostreambuf.iterator
304
+ [ostreambuf.iterator.general]: #ostreambuf.iterator.general
305
  [output.iterators]: #output.iterators
306
  [outputiterator]: #outputiterator
307
  [predef.iterators]: #predef.iterators
308
  [projected]: #projected
309
  [random.access.iterators]: #random.access.iterators
 
312
  [range.iter.op.advance]: #range.iter.op.advance
313
  [range.iter.op.distance]: #range.iter.op.distance
314
  [range.iter.op.next]: #range.iter.op.next
315
  [range.iter.op.prev]: #range.iter.op.prev
316
  [range.iter.ops]: #range.iter.ops
317
+ [range.iter.ops.general]: #range.iter.ops.general
318
  [ranges]: ranges.md#ranges
319
  [readable.traits]: #readable.traits
320
  [reverse.iter.cmp]: #reverse.iter.cmp
321
  [reverse.iter.cons]: #reverse.iter.cons
322
  [reverse.iter.conv]: #reverse.iter.conv
 
324
  [reverse.iter.nav]: #reverse.iter.nav
325
  [reverse.iter.nonmember]: #reverse.iter.nonmember
326
  [reverse.iter.requirements]: #reverse.iter.requirements
327
  [reverse.iterator]: #reverse.iterator
328
  [reverse.iterators]: #reverse.iterators
329
+ [reverse.iterators.general]: #reverse.iterators.general
330
  [std.iterator.tags]: #std.iterator.tags
331
  [stream.buffers]: input.md#stream.buffers
332
  [stream.iterators]: #stream.iterators
333
+ [stream.iterators.general]: #stream.iterators.general
334
  [swappable.requirements]: library.md#swappable.requirements
335
  [temp.deduct]: temp.md#temp.deduct
336
  [temp.func.order]: temp.md#temp.func.order
337
  [temp.inst]: temp.md#temp.inst
338
  [unreachable.sentinel]: #unreachable.sentinel
 
339
  [utility.arg.requirements]: library.md#utility.arg.requirements
340
 
341
+ [^1]: The sentinel denoting the end of a range can have the same type as
342
  the iterator denoting the beginning of the range, or a different
343
  type.
344
 
345
  [^2]: This definition applies to pointers, since pointers are iterators.
346
  The effect of dereferencing an iterator that has been invalidated is