forked from boostorg/iterator
added pseudo-code for facade_iterator_category type function
[SVN r21736]
This commit is contained in:
@ -367,22 +367,19 @@ 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<X>::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: ``static_cast<T const&>(*a).m`` is well-defined. If |
|
||||
| | |``static_cast<T&>(*a).m`` is well-defined, equivalent to |
|
||||
| | |``static_cast<T&>(*a).m``; otherwise, equivalent to |
|
||||
| | |``static_cast<T const&>(*a).m``. |
|
||||
+-----------------------------------+------------------------+-----------------------------------------------------------+
|
||||
+-----------------------------------------------------------------------------------------------------------------------------+
|
||||
|Readable Iterator Requirements (in addition to Assignable and Copy Constructible) |
|
||||
+-----------------------------------+------------------------+----------------------------------------------------------------+
|
||||
|Expression |Return Type |Note/Precondition |
|
||||
+===================================+========================+================================================================+
|
||||
|``iterator_traits<X>::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``. |
|
||||
+-----------------------------------+------------------------+----------------------------------------------------------------+
|
||||
|
||||
.. We won't say anything about iterator_traits<X>::reference until the DR is resolved. -JGS
|
||||
|
||||
|
Reference in New Issue
Block a user