Readable Iterator Concept ......................... A class or built-in type ``X`` models the *Readable Iterator* concept for value type ``T`` if, in addition to ``X`` being Assignable and Copy Constructible, the following expressions are valid and respect the stated semantics. ``U`` is the type of any specified member of type ``T``. +-----------------------------------------------------------------------------------------------------------------------------+ |Readable Iterator Requirements (in addition to Assignable and Copy Constructible) | +-----------------------------------+------------------------+----------------------------------------------------------------+ |Expression |Return Type |Note/Precondition | +===================================+========================+================================================================+ |``iterator_traits::value_type`` |``T`` |Any non-reference, | | | |non-cv-qualified type | +-----------------------------------+------------------------+----------------------------------------------------------------+ |``*a`` | Convertible to ``T`` |pre: ``a`` is dereferenceable. If ``a == b`` then ``*a`` | | | | is equivalent to ``*b``. | +-----------------------------------+------------------------+----------------------------------------------------------------+ |``a->m`` |``U&`` |pre: ``pre: (*a).m`` is well-defined. Equivalent to ``(*a).m``. | +-----------------------------------+------------------------+----------------------------------------------------------------+