答案 0 :(得分:5)
Copy-on-write是一种存储方案,其中具有重复值的对象的副本由单个对象表示。只有当您尝试更改一个时,它才会复制到一个新的唯一对象。
Boost通过告诉您某个shared_ptr
是否支持多个引用来支持此功能。如果是,则写入对象将需要复制。
手册说如果你在这样的方案中有NULL指针,它们可能会报告是唯一的还是不唯一的。真的,即使允许这样的操作,Boost也很慷慨。
答案 1 :(得分:3)
基本上,这意味着如果你的shared_ptr
没有指向任何东西,它可能会或可能不会说它是唯一的。但是,您应该知道COW已经被几乎所有主要的字符串库抛弃而且不允许使用C ++ 0x,因为它基本上很糟糕,因此您需要小心这样做。