wstringはちょっとやっかい

UTFの日本語を扱うときはstringではなくwstringを使うのですが、この人ちょっと厄介です。例えば

using namespace std;
wstring str = L"やっかい。。。";
wcout << str <<endl;

とやっても何も出てこない。
正解は

using namespace std;
wcout.imbue(locale("japanese");
wstring str = L"やっかい。。。";
wcout << str <<endl;

とか。localeを明示してやらなきゃいけないみたいですねー。
詳しくは
http://hw001.gate01.com/eggplant/tcf/cpp/wchar_t_trap.html
を参考のこと。