微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 操作符<< for QString

实现<<对于QString来说:
std::ostream&  operator <<(std::ostream &stream,const QString &str)
{
   stream << str.toAscii().constData(); //or: stream << str.toStdString(); //??
   return stream;
}

而不是写作

stream << str.toAscii().constData();

每次在代码中.

然而,由于它不在标准的Qt库中,我假定有任何特殊原因不这样做.重载的风险/不便是什么?如上所述?

解决方法

如果<操作符被包含在Qt库中,库的每个客户端都必须使用完全相同的实现.但是由于QString的本质,这远远不是这些客户想要的.有些写西班牙传统文件软件的人可能想使用latin1()字符,美国人可能会用Ascii()和更多的现代软件可能想使用Utf8(). 在图书馆中进行单一的实施将会限制整个图书馆可以做的事情.

原文地址:https://www.jb51.cc/c/111389.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐