| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 | // codecvt::length example
#include <iostream>       // std::wcout, std::endl
#include <locale>         // std::locale, std::codecvt, std::use_facet
#include <cwchar>         // std::mbstate_t
#include <cstddef>        // std::size_t
int main ()
{
  typedef std::codecvt<wchar_t,char,std::mbstate_t> facet_type;
  std::locale loc;
  const facet_type& myfacet = std::use_facet<facet_type>(loc);
  const char source[] = "abcdefghijklmnopqrstuvwxyz";
  // prepare objects for codecvt::length:
  std::mbstate_t mystate;
  const char * pc;
  wchar_t * pwc;
  // calculate length of dest (max 30):
  std::size_t length = myfacet.length (mystate, source, source+sizeof(source), 30);
  wchar_t* dest = new wchar_t[length];
  myfacet.in (mystate, source, source+sizeof(source), pc, dest, dest+length, pwc);
  std::wcout << dest << std::endl;
  delete[] dest;
  return 0;
}
 |