Chris@16: #ifndef INDIRECT_REFERENCE_DWA200415_HPP Chris@16: # define INDIRECT_REFERENCE_DWA200415_HPP Chris@16: Chris@16: // Chris@16: // Copyright David Abrahams 2004. Use, modification and distribution is Chris@16: // subject to the Boost Software License, Version 1.0. (See accompanying Chris@16: // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: // Chris@16: // typename indirect_reference

::type provides the type of *p. Chris@16: // Chris@16: // http://www.boost.org/libs/iterator/doc/pointee.html Chris@16: // Chris@16: Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: Chris@101: namespace boost { Chris@16: Chris@16: namespace detail Chris@16: { Chris@16: template Chris@16: struct smart_ptr_reference Chris@16: { Chris@16: typedef typename boost::pointee

::type& type; Chris@16: }; Chris@16: } Chris@16: Chris@16: template Chris@16: struct indirect_reference Chris@16: : mpl::eval_if< Chris@16: detail::is_incrementable

Chris@16: , iterator_reference

Chris@16: , detail::smart_ptr_reference

Chris@16: > Chris@16: { Chris@16: }; Chris@101: Chris@16: } // namespace boost Chris@16: Chris@16: #endif // INDIRECT_REFERENCE_DWA200415_HPP