Boost logo

Boost :

From: Martin Apel (martin.apel_at_[hidden])
Date: 2007-08-13 07:08:02

Hi all,

I have two mpl maps like this:

map<pair<int_<1>, int_<42> >,
    pair<int_<2>, int_<43> >,
    pair<int_<3>, int_<44> >
> Map1;

map<pair<int_<4>, int_<44> >,
    pair<int_<5>, int_<45> >,
    pair<int_<6>, int_<46> >
> Map2;

I try to join them using "joint_view" as follows:

typedef joint_view<Map1, Map2>::type JointMap;

which works fine. Then I do

std::cout << at<JointMap, int_<2> >::type::value << "\n";

which gives the following compiler error:

error: 'value' is not a member of 'boost::mpl::pair<mpl_::int_<3>,
mpl_::int_<44> >'

I tried this with gcc 3.4.6 and 4.2 under Linux, Boost version is 1.34.0.
It seems "at" returns the entry after the searched entry, and not only
the right half, but the complete pair.

Has anybody got any hints on this? To me it looks like a bug in MPL, but
I might be wrong.

Best Regards,


Virus checked: AVKB 17.336 from 12.08.2007

Boost list run by bdawes at, gregod at, cpdaniel at, john at