$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] boost::mpl::map and inserting the same pair twice
From: peter_foelsche_at_[hidden]
Date: 2008-10-06 17:05:51
I added the ::type to every insert.
It still does not compile -- not using g++ nor using visual C++.
Error message is not helpful.
 
Also is there some operation to insert all elements of one map into another one?
This would be extremely helpful.
 
#include <boost/mpl/map.hpp>
#include <boost/mpl/insert.hpp>
#include <boost/mpl/size.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/assert.hpp>
 
 
typedef boost::mpl::map<
      boost::mpl::pair<
            boost::mpl::int_<0>, 
            boost::mpl::int_<1>
      >,
      boost::mpl::pair<
            boost::mpl::int_<1>, 
            boost::mpl::int_<0>
      >
> CMap2;
 
typedef boost::mpl::insert<
      CMap2,
      boost::mpl::pair<
            boost::mpl::int_<2>, 
            boost::mpl::int_<3>
      >::type
> CMap3;
 
 
typedef boost::mpl::insert<
      CMap3,
      boost::mpl::pair<
            boost::mpl::int_<2>, 
            boost::mpl::int_<3>
      >::type
> CMap31;
 
 
int main(int, char**)
{     CMap2 s;
      CMap3 s1;
      CMap31 s2;
      //BOOST_MPL_ASSERT((boost::is_same<CMap31, CMap3>));
      return 0;
}
 
 
"The first point (using an init() function in preference to a constructor) is bogus. Using constructors and exception handling is a more general and systematic way of dealing with resource acquisition and initialization errors. This style is a relic of pre-exception C++." -- Stroustrup