我们正在使用一个
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
在我们的记录器中,它从遗留组件获取 UTF-16 字符串并将其转换为我们写入日志的 UTF-8。转换器在每次转换时都被实例化,我们这样做
auto utf8string = converter.to_bytes(utf16string);
这是在我们代码的一个非常密集和多线程的部分中完成的,我想重新使用转换器的一个实例,但是看到它std::wstring_convert
暴露了一个“状态”,我担心这to_bytes
不是线程安全的和任何我们可以通过重用同一个实例获得的收益会因需要的过度锁定而丢失(在这种情况下,我无论如何都不会共享该实例)。
那么,std::wstring_convert<>::to_bytes
线程安全吗?
编辑:澄清我真正要问的问题:给定一个实例std::wstring_convert<>
,如果 2 个或多个线程同时to_bytes
使用不同的参数调用该实例,to_bytes
那么可以保证表现良好吗?