Boost logo

Boost Users :

Subject: Re: [Boost-users] [mpl]... is there an mpl::string
From: Eric Niebler (eric_at_[hidden])
Date: 2009-04-07 13:21:58

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:
>> No doubt the regression tests will reveal portability problems. Once
>> they have been worked out, we can move this to release.
> Why is this better than a metafunction c_str< Sequence >?
> typedef mpl::vector_c<char, 'h', 'e', 'l', 'l', 'o'> str;
> template < char const* sz >
> struct x
> {};
> x< c_str<str>::value > test;
> Is there some reason that's not possible or is prone to problems avoided
> by mpl::string?

That is certainly a valid design. It's somewhat subjective, but IMO
multi-character literals give a nicer compile-time string interface.

// With mpl::vector_c
mpl::vector_c<char, 'h','e','l','l','o',' ','w','o','r','l','d'>

// With mpl::string
mpl::string<'hell','o wo','rld'>

Neither will win a beauty contest, but my preference is strongly for the

Eric Niebler
BoostPro Computing

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at