Iterator: Remove use of eti baseclass workaround.

[SVN r85940]
This commit is contained in:
Stephen Kelly
2013-09-26 09:43:37 +00:00
committed by Daniel James
parent 0e23f15623
commit eb288b2908

View File

@ -20,7 +20,6 @@
#include <boost/concept_archetype.hpp> #include <boost/concept_archetype.hpp>
#include <boost/mpl/aux_/msvc_eti_base.hpp>
#include <boost/mpl/bitand.hpp> #include <boost/mpl/bitand.hpp>
#include <boost/mpl/int.hpp> #include <boost/mpl/int.hpp>
#include <boost/mpl/equal_to.hpp> #include <boost/mpl/equal_to.hpp>
@ -119,26 +118,24 @@ namespace detail
template <class Value, class AccessCategory, class TraversalCategory> template <class Value, class AccessCategory, class TraversalCategory>
struct operator_brackets struct operator_brackets
: mpl::aux::msvc_eti_base< : mpl::eval_if<
typename mpl::eval_if< is_convertible<TraversalCategory, random_access_traversal_tag>
is_convertible<TraversalCategory, random_access_traversal_tag> , mpl::eval_if<
, mpl::eval_if< iterator_archetypes::has_access<
AccessCategory
, iterator_archetypes::writable_iterator_t
>
, mpl::identity<writable_operator_brackets<Value> >
, mpl::if_<
iterator_archetypes::has_access< iterator_archetypes::has_access<
AccessCategory AccessCategory
, iterator_archetypes::writable_iterator_t , iterator_archetypes::readable_iterator_t
>
, mpl::identity<writable_operator_brackets<Value> >
, mpl::if_<
iterator_archetypes::has_access<
AccessCategory
, iterator_archetypes::readable_iterator_t
>
, readable_operator_brackets<Value>
, no_operator_brackets
> >
, readable_operator_brackets<Value>
, no_operator_brackets
> >
, mpl::identity<no_operator_brackets> >
>::type , mpl::identity<no_operator_brackets>
>::type >::type
{}; {};
@ -154,9 +151,7 @@ namespace detail
template <class Derived, class Value, class TraversalCategory> template <class Derived, class Value, class TraversalCategory>
struct traversal_archetype_ struct traversal_archetype_
: mpl::aux::msvc_eti_base< : traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
typename traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
>::type
{ {
typedef typename typedef typename
traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value> traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
@ -309,11 +304,9 @@ struct iterator_access_archetype_impl
template <class Value, class AccessCategory> template <class Value, class AccessCategory>
struct iterator_access_archetype struct iterator_access_archetype
: mpl::aux::msvc_eti_base< : iterator_access_archetype_impl<
typename iterator_access_archetype_impl< AccessCategory
AccessCategory >::template archetype<Value>
>::template archetype<Value>
>::type
{ {
}; };