Boost logo

Boost Users :

Subject: Re: [Boost-users] [mpl]... is there an mpl::string
From: Noah Roberts (roberts.noah_at_[hidden])
Date: 2009-04-08 17:24:15


Eric Niebler wrote:
> Noah Roberts wrote:
>> Eric Niebler wrote:
>>>>>> Andy Stevenson wrote:
>>>>>>>
>>>>>>> I recall some discussion of there being an mpl::string
>>>>>>> template..... Can't see it in the mpl library. Is it elsewhere?
>>>
>>> It has been added to trunk as of revision 52208:
>>>
>>> https://svn.boost.org/trac/boost/changeset/52208
>>>
>>> No doubt the regression tests will reveal portability problems. Once
>>> they have been worked out, we can move this to release.
>>
>> Visual Studio 2005 hates it.
>
> <snip>
>
> Is that msvc-7.1? If so, I have already fixed the problem in changeset
> 52241. You can see that the string tests are passing for msvc-7.1, -8.0
> and -9.0 by looking at the regression results.

No, it's msvc-8.0

Regression results aside, this doesn't compile:

#include <iostream>
#include <boost/mpl/at.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/string.hpp>

int main()
{
   typedef boost::mpl::string<'hell', 'o wo', 'rld!'> str;

   std::cout << boost::mpl::at<str, boost::mpl::int_<0> >::value <<
std::endl;
   std::cout << str::c_str << std::endl;

   std::cin.get();
}

Again, I simply copied char.hpp, char_fwd.hpp, and string.hpp into boost
1.37

It could be that it's because I'm not grabbing the entire boost tree
from svn but since I can replicate the problem with a basic program
that's using the same techniques you are, I really doubt that.

Looking deeper, you need to change:

#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
to:
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)

Alternatively, you could just keep telling me it's working and I'll go
away. I'm not loaded with a lot of spare time either.


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