codecvt
標準の iostream で独自のものを使用しようとしています。私はこの行を使用しています:
std::cout.imbue(std::locale(std::locale("C"), new rot13codecvt()));
rot13codecvt
は単なる例であり、インターウェブから恥知らずに逐語的に持ち上げられてい ます。完全な実行可能な例はこちらです。私の本当の codecvt は何か違うことをします。
リンクされたライブの例でわかるように、これはg++ ではまったく機能しません。出力は rot13d ではありません。カスタム codecvt クラスの関数は呼び出されません。しかし、VS2012ではうまく機能します。
「C」以外のロケールを試しましたが、どれも機能しません。hereの例も試してみましたが、同じ結果です。
私は何を間違っていますか?