::type provides the type of *p. // // http://www.boost.org/libs/iterator/doc/pointee.html // # include # include # include # include # include namespace boost { namespace detail { template struct smart_ptr_reference { typedef typename boost::pointee::type& type; }; } template struct indirect_reference : mpl::eval_if< detail::is_incrementable , iterator_reference , detail::smart_ptr_reference > { }; } // namespace boost #endif // INDIRECT_REFERENCE_DWA200415_HPP
::type& type; }; } template struct indirect_reference : mpl::eval_if< detail::is_incrementable , iterator_reference , detail::smart_ptr_reference > { }; } // namespace boost #endif // INDIRECT_REFERENCE_DWA200415_HPP
, iterator_reference
, detail::smart_ptr_reference
> { }; } // namespace boost #endif // INDIRECT_REFERENCE_DWA200415_HPP