Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/named req/ContiguousIterator"

From cppreference.com
< cpp‎ | named req
m (Requirements)
m
Line 17: Line 17:
 
* {{tt|n}}, an integral value
 
* {{tt|n}}, an integral value
  
If {{c|a + n}} is valid and results in a dereferenceable iterator of type {{tt|It}}, then {{c|*(a + n)}} is equivalent to {{c|*(std::addressof(*a) + n)}}.
+
Then
 +
* {{c|a + n}} is valid
 +
* If {{c|a + n}} results in a dereferenceable iterator of type {{tt|It}}, then {{c|*(a + n)}} is equivalent to {{c|*(std::addressof(*a) + n)}}.
  
 
===Standard library===
 
===Standard library===

Revision as of 09:03, 1 December 2017

Template:cpp/concept/title Template:cpp/concept/navbar

A ContiguousIterator is an Template:concept whose logically adjacent elements are also physically adjacent in memory.

A pointer to an element of an array satisfies all requirements of ContiguousIterator.

Template:cpp/concept/concept note

Requirements

The type It satisfies ContiguousIterator if

And, given

  • a, a dereferenceable iterator of type It
  • n, an integral value

Then

  • a + n is valid
  • If a + n results in a dereferenceable iterator of type It, then *(a + n) is equivalent to *(std::addressof(*a) + n).

Standard library

The following standard library types are Template:concepts.

See also