我最近阅读了一些关于不可变字符串的资料(为什么Java和.NET中的字符串不能是可变的?)以及(为什么.NET的String是不可变的?),还有一些关于为什么D语言选择使用不可变字符串的内容。这似乎有许多优点。
- 可以轻而易举地实现线程安全
- 更加安全
- 在大多数情况下,内存利用率更高
- 廉价的子字符串(标记化和切片)
更不用说大多数新语言都采用了不可变字符串,例如 D 2.0、Java、C#、Python 等等。
C++是否从不可变字符串中受益?
在 C++(或 C++0x)中是否有可能实现一个不可变字符串类,具备所有这些优点?
更新:
有两个尝试实现不可变字符串:const_string 和 fix_str。 它们都已经半个十年没有更新了。它们是否有用?为什么const_string从未被纳入boost?