summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/iterator/iterator_facade.hpp')
-rw-r--r--3rdParty/Boost/src/boost/iterator/iterator_facade.hpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp b/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp
index 967d60f..5ee73b5 100644
--- a/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp
+++ b/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp
@@ -105,6 +105,7 @@ namespace boost
typedef typename remove_const<ValueParam>::type value_type;
+ // Not the real associated pointer type
typedef typename mpl::eval_if<
boost::detail::iterator_writability_disabled<ValueParam,Reference>
, add_pointer<const value_type>
@@ -323,7 +324,7 @@ namespace boost
static type make(Reference x)
{
- return implicit_cast<type>(&x);
+ return boost::implicit_cast<type>(&x);
}
};
@@ -617,6 +618,12 @@ namespace boost
Value, CategoryOrTraversal, Reference, Difference
> associated_types;
+ typedef boost::detail::operator_arrow_result<
+ typename associated_types::value_type
+ , Reference
+ , typename associated_types::pointer
+ > pointer_;
+
protected:
// For use by derived classes
typedef iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference> iterator_facade_;
@@ -626,7 +633,9 @@ namespace boost
typedef typename associated_types::value_type value_type;
typedef Reference reference;
typedef Difference difference_type;
- typedef typename associated_types::pointer pointer;
+
+ typedef typename pointer_::type pointer;
+
typedef typename associated_types::iterator_category iterator_category;
reference operator*() const
@@ -634,18 +643,9 @@ namespace boost
return iterator_core_access::dereference(this->derived());
}
- typename boost::detail::operator_arrow_result<
- value_type
- , reference
- , pointer
- >::type
- operator->() const
+ pointer operator->() const
{
- return boost::detail::operator_arrow_result<
- value_type
- , reference
- , pointer
- >::make(*this->derived());
+ return pointer_::make(*this->derived());
}
typename boost::detail::operator_brackets_result<Derived,Value,reference>::type