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>`.
|
| 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.
|
| 208 |
-
[defns.
|
|
|
|
| 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
|
| 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
|