boost库的哪一部分使cout能够打印wstring以及如何打印?
Which part of boost library enables cout to print wstring and how?
我最近才开始使用 boost 库,发现在包含某个 boost 标头(可能是 filesystem.h(后,cout 函数可以完美地打印出同一个程序中的字符串和 wstring。更重要的是,在打印 wstring 时,内容用引号引起来。
我对目前的行为非常满意,并希望充分了解其背后的机制,以避免任何可能的不当行为。
boost::filesystem::path
有一个来自string_type
的隐式转换构造函数,定义为std::basic_string<value_type>
。value_type
的定义因环境而异。值得注意的是,wchar_t
在Windows上。这意味着在Windows上,string_type
是std::basic_string<wchar_t>
,也就是std::wstring
.
所以你的wstring
被隐式转换为boost::filesystem::path
,它被重载以通过operator<<
打印。
相关文章:
- 如何循环打印顶点结构
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 如何在c++中打印目录
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 在线编译器中的分段C++没有打印消息
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 如何将结构插入到集合中并打印集合的成员
- 在循环C++中指定字符串之后,不会打印该字符串
- 如何使用重新定义的打印函数打印Lua表?
- 在 POS 打印机上打印条形码字体
- 视觉打印没有打印任何输出内容?C++ SDL
- 打印,打印到MAC OS X上
- 为类打印输出(打印调试信息)的最佳实践是什么?
- QWebView不在实际打印机上打印多页
- 有没有办法创建一个公共输出流对象以在控制台上打印并打印到 c++ 中的文件
- 防止在打印C++打印中打印标志
- <string> 当我得到一个'compilr.com/rayd360/test-songst'时如何打印出打印矢量
- 在打印机上打印(windows平台32位)
- 流可以用来在打印机上打印