1234567891011121314151617181920212223242526272829 |
- .. Copyright David Abrahams 2004. Use, modification and distribution is
- .. subject to the Boost Software License, Version 1.0. (See accompanying
- .. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- ::
- template <class Dereferenceable>
- struct indirect_reference
- {
- typedef /* see below */ type;
- };
- :Requires: For an object ``x`` of type ``Dereferenceable``, ``*x``
- is well-formed. If ``++x`` is ill-formed it shall neither be
- ambiguous nor shall it violate access control, and
- ``pointee<Dereferenceable>::type&`` shall be well-formed.
- Otherwise ``iterator_traits<Dereferenceable>::reference`` shall
- be well formed. [Note: These requirements need not apply to
- explicit or partial specializations of ``indirect_reference``]
- ``type`` is determined according to the following algorithm, where
- ``x`` is an object of type ``Dereferenceable``::
- if ( ++x is ill-formed )
- return ``pointee<Dereferenceable>::type&``
- else
- std::iterator_traits<Dereferenceable>::reference
-
|