37 std::mbstate_t state = std::mbstate_t ();
40 std::string ins (
"\xfc \xcc \xcd \x61 \xe1 \xd9 \xc6 \xe6 \xf5");
41 std::string ins2 (ins.size (),
'.');
42 std::string outs (ins.size () /
ex_codecvt ().encoding (),
'.');
45 std::cout <<
"Before:\n"
48 << outs <<
'\n' <<
'\n';
58 typedef std::codecvt<char, char, std::mbstate_t>
CodeCvt;
59 const CodeCvt& cdcvt = std::use_facet<CodeCvt>(
loc);
62 const char *const_out_next = 0;
63 const char *const_in_next = 0;
68 cdcvt.in (state, ins.c_str (), ins.c_str () + ins.length (), const_in_next,
69 &outs [0], &outs [0] + outs.length (), out_next);
71 std::cout <<
"After in:\n"
77 state = std::mbstate_t ();
80 cdcvt.out (state, outs.c_str (), outs.c_str () + outs.length (),
81 const_out_next, &ins [0], &ins [0] + ins.length (), in_next);
83 std::cout <<
"After out:\n"