|
Boost Users : |
Subject: Re: [Boost-users] [MPL] mpl::at for AssociativeSequence
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-06-12 13:42:02
On Tue, Jun 12, 2012 at 10:39 AM, Jeffrey Lee Hellrung, Jr. <
jeffrey.hellrung_at_[hidden]> wrote:
> On Tue, Jun 12, 2012 at 9:11 AM, <dariomt_at_[hidden]> wrote:
>
>> Hi list,
>>
>> I'm trying to use the version of mpl::at with three template parameters,
>> as specified here (
>> http://www.boost.org/doc/libs/1_46_0/libs/mpl/doc/refmanual/at.html)
>>
>> But I'm getting a compiler error saying 'boost::mpl::at' : too many
>> template arguments.
>>
>> What am I doing wrong?
>>
>>
>> #include <boost/mpl/map.hpp>
>> #include <boost/mpl/at.hpp>
>> #include <boost/mpl/size.hpp>
>> #include <boost/mpl/empty.hpp>
>> #include <boost/type_traits/is_same.hpp>
>>
>> using namespace boost;
>> using namespace boost::mpl;
>>
>> typedef map<
>> pair<int,unsigned>
>> , pair<char,unsigned char>
>> , pair<long_<5>,char[17]>
>> , pair<int[42],bool>
>> > m;
>>
>> BOOST_MPL_ASSERT_RELATION( size<m>::value, ==, 4 );
>> BOOST_MPL_ASSERT_NOT(( empty<m> ));
>>
>> BOOST_MPL_ASSERT(( is_same< at<m,int>::type, unsigned > ));
>> BOOST_MPL_ASSERT(( is_same< at<m,long_<5> >::type, char[17] > ));
>> BOOST_MPL_ASSERT(( is_same< at<m,int[42]>::type, bool > ));
>> BOOST_MPL_ASSERT(( is_same< at<m,long>::type, void_ > ));
>>
>> BOOST_MPL_ASSERT(( is_same< at<m,long,void_>::type, void_ > )); // fails!
>>
>
> It seems there is a discrepancy between the documentation and the code; if
> you take a look at boost/mpl/at_fwd.hpp, it forward declares boost::mpl::at
> with only 2 template parameters :(
>
> Please file a trac ticket, and I'll try to find out what the correct
> resolution is on the developer's list.
>
> - Jeff
>
Argh, sorry dariomt, Gordon has found this already in the trac database :/
My trac searching skills are evidently pretty poor :(
- Jeff
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net