resolved Howards issue about a->m

[SVN r21646]
This commit is contained in:
Jeremy Siek
2004-01-12 20:31:44 +00:00
parent 75e76eb637
commit 08ce6903ce
2 changed files with 30 additions and 31 deletions

View File

@ -360,26 +360,24 @@ 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: ``(*a).m`` is |
| | |well-defined. Equivalent|
| | |to ``(*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: ``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``. |
+-----------------------------------+------------------------+-----------------------------------------------------------+
.. We won't say anything about iterator_traits<X>::reference until
the DR is resolved.
.. We won't say anything about iterator_traits<X>::reference until the DR is resolved. -JGS
.. _Writable Iterator: