#include <iostream>
#include <locale>
#include <string>
#include <cwchar>

using namespace std;

int
main ()
{
  // Set up locale stuff...
  std::locale::global(std::locale(""));
  //std::wcout.imbue(std::locale());


//  wcout.imbue( locale("de_DE.UTF-8") );

  wstring wide(L"W: Umlaute: ïüß\n");
  std::string narrow("N: Umlaute: ïüß\n");

  cout << narrow << endl;

  wcout << wide << endl;

  cout << narrow << endl;

  wcout << wide << endl;



  wcerr << wide << endl;

  cerr << narrow << endl;

  wcerr << wide << endl;

  cerr << narrow << endl;


  cerr << "Narrow detail\n";
  for (int i = 0; i < narrow.size(); ++i)
    cerr << i << "  " << narrow[i] << '\n';

  wcout << "Wide detail\n";
  for (int i = 0; i < wide.size(); ++i)
    wcout << i << "  " << wide[i] << '\n';


  return 0;
}

