Boost logo

Boost :

Subject: Re: [boost] [mpl] mpl::c_str fails for mpl::push_back
From: Eric Niebler (eric_at_[hidden])
Date: 2010-11-06 21:15:34


On 11/6/2010 8:51 PM, vicente.botet wrote:
> Hi,
>
> the following results in a compile error for msvc-10.0. It works for gcc-3.4, gcc-4.3, gcc-4.5.
>
> typedef mpl::vector_c<char, 'h','e','l','l','o',' ','w','o','r','l','d'> hello;
>
> typedef mpl::push_back<hello, mpl::char_<'!'> >::type hello2;
>
> BOOST_TEST((std::string(mpl::c_str<hello2>::value)== "hello world!")); // line 59
>
> C:\cygwin\boost\v44\boost/mpl/string.hpp(592) : error C2039: 'value_type' : is not a member of 'boost::mpl::vector12<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>'
> with
> [
> T0=boost::mpl::integral_c<char,104>,
> T1=boost::mpl::integral_c<char,101>,
> T2=boost::mpl::integral_c<char,108>,
> T3=boost::mpl::integral_c<char,108>,
> T4=boost::mpl::integral_c<char,111>,
> T5=boost::mpl::integral_c<char,32>,
> T6=boost::mpl::integral_c<char,119>,
> T7=boost::mpl::integral_c<char,111>,
> T8=boost::mpl::integral_c<char,114>,
> T9=boost::mpl::integral_c<char,108>,
> T10=boost::mpl::integral_c<char,100>,
> T11=boost::mpl::char_<33>
> ]
> io\match_pass.cpp(59) : see reference to class template instantiation 'boost::mpl::c_str<Sequence>' being compiled
> with
> [
> Sequence=hello2
> ]
>
> Is this a known bug?

mpl::c_str is for use with mpl::string. Does the problem also occur with
mpl::string?

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

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