boost::mpl::string と boost::mpl::c_str
boost::mpl::string は、現状 char にしか対応していない。
typedef boost::mpl::string<L'f', L'o', L'o', L'あ', L'あ', L'あ'>::type foo; sprig::cout_section_line("foo", boost::mpl::c_str<foo>::value); // <foo>foo0B0B0B</foo>
どうやらワイド文字リテラルは、multi-character literal('foo'←こういうの)と同じように処理されるらしい。
じゃあ wchar_t 使いたい時はどうすれば、と思ったら
boost::mpl::c_str は boost::mpl::string に限らずMPLシーケンスなら何でも渡せるようだ。
typedef boost::mpl::vector_c<wchar_t, L'f', L'o', L'o', L'あ', L'あ', L'あ'>::type foo; sprig::cout_section_line("foo", boost::mpl::c_str<foo>::value); // <foo>fooあああ</foo>
これは便利。