を使用しています
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
レガシー コンポーネントから UTF-16 文字列を取得し、ログに書き込む UTF-8 に変換する私たちのロガーで。コンバーターは、変換ごとにインスタンス化されます。
auto utf8string = converter.to_bytes(utf16string);
これは、コードのかなり集中的でマルチスレッド化された部分で行われ、コンバーターの 1 つのインスタンスを再利用したいのですが、それがstd::wstring_convert「状態」を公開していることを見て、to_bytesスレッドセーフではないのではないかと心配しています。同じインスタンスを再利用することで得られる利益は、その後必要となる過度のロックによって失われます (その場合、とにかくインスタンスを共有しません)。
それで、std::wstring_convert<>::to_bytesスレッドセーフですか?
編集:私が本当に求めていることの明確化: の1つのインスタンスが与えられたstd::wstring_convert<>場合、2つ以上のスレッドto_bytesが異なる引数でそのインスタンスを同時に呼び出す場合、to_bytes適切に動作することが保証されますか?