Updated pointee and indirect_reference so that pointee represents the immutability of the pointed-to type via const qualification. The pointee of a proxy-based iterator will be const qualified unless a mutable reference to the value_type can be bound to the returned proxy.

Added a test for pointee

Fixed iterator_facade so operator[] result type computation didn't
cause a problem with abstract types.

Updated iterator_facade operator[] docs for accuracy.

Allowed Borland to simply fail the indirect_iterator_member_types test
because of its lame const-dropping, instead of trying to work around
it.

[SVN r21579]
This commit is contained in:
Dave Abrahams
2004-01-11 00:03:09 +00:00
committed by Peter Dimov
parent e600d3f65b
commit 69df402f70

View File

@ -11,6 +11,7 @@
# include <boost/iterator/iterator_traits.hpp>
# include <boost/type_traits/remove_cv.hpp>
# include <boost/mpl/apply_if.hpp>
# include <boost/pointee.hpp>
namespace boost {
@ -19,7 +20,7 @@ namespace detail
template <class P>
struct smart_ptr_reference
{
typedef typename P::element_type& type;
typedef typename boost::pointee<P>::type& type;
};
}