Ara*_*raK 13 c++ string frameworks
虽然我喜欢用C++编程,但我讨厌这样的想法:
这个类不满足这些框架的需求吗?我的意思是班上有什么问题?!
std::basic_string
vs
QString
vs
wxString
vs .............
standard string
standard string
只是要强调,下面是一个重要的问题:
你是否在你将要使用的每个框架中学习框架的"字符串"?您是否会通过尝试在任何地方进行调整来坚持标准字符串类?
谢谢...
Mar*_*wis 14
多个字符串类的原因是C++标准很晚才完成(1998年); 然后花了一些时间,直到所有系统实际提供了正确的C++库.到那时,所有这些竞争的字符串类已经写好了.
此外,在某些情况下,人们希望从单个基类继承,std :: string不会这样做.
IMO,std :: string的规模还不够广泛(Qt和wxWidgets比STL更老,或者至少比广泛使用的稳定和工作STL更老).而且,std :: string遗憾的是不是每个人都有的最好的字符串类,其他框架也有其他需求.
注意!下面的段落略有不正确,但保留了意见.
例如,C++ STL是非常受资源约束的,而Qt字符串类提供了许多礼物永远不会达成一致的好东西,特别是有些人希望它可以在嵌入式系统等上轻松实现.
其中一个主要问题std::string
是缺乏Unicode支持.即使std::wstring
您只获得了Unicode代码点的容器,但仍然必须实现支持Unicode的功能.
此外,QString
例如"隐式共享".这使得以有效的方式在代码中传递字符串变得非常容易.它们实际上只在写入时复制.
一个合理的原因(与"我不想学习标准库"这样的不合理的原因)是一些库希望保持对二进制布局的控制,以实现某些类型的互操作性(例如跨版本的二进制兼容性) .一个例子是VC++库中的_bstr_t; 对于COM来说,重要的是_bstr_t表示为BSTR(因为这是COM需要的),因此构建在BSTR之上的包装对COM开发人员很有价值.
归档时间: |
|
查看次数: |
1818 次 |
最近记录: |