Boost logo

Boost :

From: Sven Van Echelpoel (sven.vanechelpoel_at_[hidden])
Date: 2007-11-20 10:22:51


Hi,

I have an mpl sequence of types and I want to ensure that each type
occurs only once in that sequence (I do not control the initial
sequence). The quickest way I could think of was copying that sequence
into a set. Here's the utility I had in mind:

template<
  typename T
>
struct as_set :
  copy<
    T
  , inserter<
      set<>
    , insert< _1, _2 >
>
>
{};

Using this on, say, a vector indeed produces a set with all the types
copied from the vector, duplicates removed. However, when I use the
resulting set in an algorithm that iterates over the elements (I need
inherit_linearly) it no longer compiles. The compiler (VC 7.1) complains
that next_ is not member of set<na,na,...>. It seems as if the next
iterator of the last element isn't properly defined. This isn't a
problem with a normally constructed set (set<int,char>). Here's a
minimal program that demonstrates the issue:

#include <boost/mpl/set.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/copy.hpp>
#include <boost/mpl/insert.hpp>
#include <boost/mpl/inserter.hpp>

using namespace boost::mpl;

template<
  typename T
>
struct as_set :
  copy<
    T
  , inserter<
      set<>
    , insert< _1, _2 >
>
>
{};

typedef set<int,char> a_set;
typedef vector<int,int,char> a_vector;
typedef as_set< a_set >::type set_as_set;
typedef as_set< a_vector >::type vector_as_set;

typedef next< begin< a_set >::type >::type
THIS_IS_OK;
typedef next< next< begin< a_set >::type >::type >::type
THIS_IS_OK_AS_WELL;
typedef next< begin< a_vector >::type >::type
THIS_IS_OK_TOO;
typedef next< begin< set_as_set >::type >::type
THIS_WORKS_TOO;
typedef next< next< begin< set_as_set >::type >::type >::type
THIS_FAILS;
typedef next< next< begin< vector_as_set >::type >::type >::type
THIS_FAILS_TOO;

This is the output produced by the compiler:

Compiling...
set_as_copy_of_sequence_issue.cpp
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(52) : error C2039: 'next_'
: is not a member of
'boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
        boost_1_34_0\boost\mpl\aux_\preprocessed\plain\set.hpp(34) : see
declaration of
'boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
        boost_1_34_0\boost\mpl\eval_if.hpp(41) : see reference to class
template instantiation 'boost::mpl::next<T>' being compiled
        with
        [

T=boost::mpl::s_iter<set_as_set,boost::mpl::s_item<boost::mpl::if_na<boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl
::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a3,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boos
t::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::
mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,b
oost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a2,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl:
:na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mp
l::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost
::mpl::na,boost::mpl::na>::type>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a1,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::ope
ration>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::ne
xt_>
        ]
        boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(56) : see reference
to class template instantiation 'boost::mpl::eval_if<C,F1,F2>' being
compiled
        with
        [

C=boost::mpl::has_key<set_as_set,boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>,

F1=boost::mpl::identity<boost::mpl::s_iter<set_as_set,boost::mpl::s_item<boost::mpl::if_na<boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::n
a,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl
::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a3,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boos
t::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::
mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,b
oost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a2,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl:
:na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::i
nsert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boo
st::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a1,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost:
:mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::next_>>,

F2=boost::mpl::next<boost::mpl::s_iter<set_as_set,boost::mpl::s_item<boost::mpl::if_na<boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boos
t::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a3,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::m
pl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl
::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boos
t::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na
,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,b
oost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::
inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a2,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na
,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl:
:na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mp
l::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl:
:na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type>::a1,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na
,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state0,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,bo
ost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl
::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter0>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::next_>>
        ]

boost_mpl_set_issue_test\boost_mpl_set_issue_test\set_as_copy_of_sequence_issue.cpp(31)
: see reference to class template instantiation 'boost::mpl::next<T>'
being compiled
        with
        [

T=boost::mpl::s_iter<set_as_set,boost::mpl::s_item<boost::mpl::if_na<boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost
::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state1,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter1>::type>::a3,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::
_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state1,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na
,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::m
pl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter1>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boo
st::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state1,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost
::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inse
rter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter1>::type>::a2,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boo
st::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state1,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost:
:mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,
boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter1>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::type,boost::mpl::aux::resolve_bind_arg<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::insert,boost::mpl::void_>,boost::mpl::lambda<boost::mpl::_1,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::_2,boost::mpl::void_>::result_,boost::mpl::lambda<boost::mpl::na,boost::mpl::void_>::result_>::apply<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_
1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state1,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,
boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mp
l::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter1>::type>::a1,boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boo
st::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::operation>::state1,boost::mpl::deref<boost::mpl::aux::fold_impl<2,boost::mpl::begin<a_set>::type,boost::mpl::end<a_set>::type,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::insert<boost::mpl::_1,boost::mpl::_2>>::state,boost::mpl::inserter<boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost:
:mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::mpl::in
sert<boost::mpl::_1,boost::mpl::_2>>::operation>::iter1>::type,boost::mpl::na,boost::mpl::na,boost::mpl::na>::type>::next_>
        ]
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(52) : error C2146: syntax
error : missing ',' before identifier 'type'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(52) : error C2065: 'type' :
undeclared identifier
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(53) : error C2039: 'next_'
: is not a member of
'boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
        boost_1_34_0\boost\mpl\aux_\preprocessed\plain\set.hpp(34) : see
declaration of
'boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(53) : error C2146: syntax
error : missing ',' before identifier 'next_'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(53) : error C2065: 'next_'
: undeclared identifier
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(53) : error C2976:
'boost::mpl::s_iter' : too few template arguments
        boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(68) : see
declaration of 'boost::mpl::s_iter'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(53) : error C3203: 's_iter'
: class template invalid as template argument for template parameter
'T', expected a real type
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(54) : error C2039: 'next_'
: is not a member of
'boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
        boost_1_34_0\boost\mpl\aux_\preprocessed\plain\set.hpp(34) : see
declaration of
'boost::mpl::set<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(54) : error C2146: syntax
error : missing ',' before identifier 'next_'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(54) : error C3861: 'next_':
identifier not found, even with argument-dependent lookup
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(54) : error C2976:
'boost::mpl::s_iter' : too few template arguments
        boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(68) : see
declaration of 'boost::mpl::s_iter'
boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(54) : error C3203: 's_iter'
: class template invalid as template argument for template parameter
'T', expected a real type
boost_1_34_0\boost\mpl\if.hpp(63) : error C2039: 'value' : is not a
member of 'boost::mpl::has_key<boost::mpl::na,boost::mpl::na>'
        boost_1_34_0\boost\mpl\has_key.hpp(37) : see declaration of
'boost::mpl::has_key<boost::mpl::na,boost::mpl::na>'
        boost_1_34_0\boost\mpl\eval_if.hpp(40) : see reference to class
template instantiation 'boost::mpl::if_<T1,T2,T3>' being compiled
        with
        [
            T1=boost::mpl::has_key<boost::mpl::na,boost::mpl::na>,
            T2=boost::mpl::identity<int>,
            T3=boost::mpl::next<int>
        ]
        boost_1_34_0\boost\mpl\set\aux_\iterator.hpp(56) : see reference
to class template instantiation 'boost::mpl::eval_if<C,F1,F2>' being
compiled
        with
        [
            C=boost::mpl::has_key<boost::mpl::na,boost::mpl::na>,
            F1=boost::mpl::identity<int>,
            F2=boost::mpl::next<int>
        ]
boost_1_34_0\boost\mpl\if.hpp(63) : error C2065: 'value' : undeclared
identifier
boost_1_34_0\boost\mpl\if.hpp(67) : error C2955: 'boost::mpl::if_c' :
use of class template requires template argument list
        boost_1_34_0\boost\mpl\if.hpp(37) : see declaration of
'boost::mpl::if_c'
boost_1_34_0\boost\mpl\if.hpp(70) : error C2955: 'boost::mpl::if_c' :
use of class template requires template argument list
        boost_1_34_0\boost\mpl\if.hpp(37) : see declaration of
'boost::mpl::if_c'
boost_1_34_0\boost\mpl\if.hpp(70) : error C2955: 'boost::mpl::if_c' :
use of class template requires template argument list
        boost_1_34_0\boost\mpl\if.hpp(37) : see declaration of
'boost::mpl::if_c'
boost_1_34_0\boost\mpl\eval_if.hpp(41) : fatal error C1903: unable to
recover from previous error(s); stopping compilation

(I'm using Boost 1.34 with VC 7.1.)

I have been staring at this problem for quite a while now and am unable
to figure out completely what's going wrong. Is the way I'm tackling the
problem the right way to go or is there a simpler alternative? Am I
doing something wrong or overlooking something obvious altogether? Any
help would be appreciated.

Thanks,

Sven


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk