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

时间:2017-07-12 02:23:01

标签: c++ boost cout wstring

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

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

1 个答案:

答案 0 :(得分:2)

boost::filesystem::path有一个来自string_type的隐式转化构造函数,定义为std::basic_string<value_type>value_type根据环境的不同而定义。值得注意的是,Windows上的wchar_t。这意味着在Windows上,string_typestd::basic_string<wchar_t>,a.k.a。std::wstring

因此,您的wstring被隐式转换为boost::filesystem::path,因为operator<<进行打印而过载。{/ p>