boost库的哪一部分使cout能够打印wstring以及如何打印?

Which part of boost library enables cout to print wstring and how?

本文关键字:打印 何打印 wstring boost 一部分 cout      更新时间:2023-10-16

我最近才开始使用 boost 库,发现在包含某个 boost 标头(可能是 filesystem.h(后,cout 函数可以完美地打印出同一个程序中的字符串和 wstring。更重要的是,在打印 wstring 时,内容用引号引起来。

我对目前的行为非常满意,并希望充分了解其背后的机制,以避免任何可能的不当行为。

boost::filesystem::path有一个来自string_type的隐式转换构造函数,定义为std::basic_string<value_type>value_type的定义因环境而异。值得注意的是,wchar_t在Windows上。这意味着在Windows上,string_typestd::basic_string<wchar_t>,也就是std::wstring.

所以你的wstring被隐式转换为boost::filesystem::path,它被重载以通过operator<<打印。