$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Yuval Ronen (ronen_yuval_at_[hidden])
Date: 2007-05-31 17:31:52
I have the following code:
#include <utility>
#include <boost/mpl/map.hpp>
#include <boost/mpl/transform.hpp>
template <typename MplPair>
struct make_ptr_pair1
{
     typedef std::pair<typename MplPair::first *, typename 
MplPair::second *> type;
};
template <typename First, typename Second>
struct make_ptr_pair2
{
     typedef std::pair<First *, Second *> type;
};
int main(int argc, char *argv[])
{
     namespace mpl = boost::mpl;
     typedef mpl::map< mpl::pair<int, double> > my_map;
     //typedef mpl::transform< my_map, make_ptr_pair1<mpl::_1> >::type 
ptr_pair_seq1;
     //typedef mpl::transform< my_map, make_ptr_pair2<mpl::_1, mpl::_2> 
 >::type ptr_pair_seq2;
     return 0;
}
If I uncomment any of the two mpl::transform lines in main(), the code 
doesn't compile (VC8). The point is to get a sequence of std::pairs out 
of the content of the mpl::map. Is there anything I'm doing wrong? Can 
mpl::transform be used for mpl::map? Maybe I can do it with fusion, but 
the above code seems to be something that's supposed to be working, 
isn't it?
Yuval