为什么没有boost :: copy_on_write_ptr?

Fra*_*ank 7 c++ boost idioms smart-pointers copy-on-write

我刚看到这个很好的写时复制指针实现.它看起来非常通用和有用,所以我的问题是:这样的类是否包含在任何C++工具包(boost,loki等)中?如果没有,我真的很想知道为什么,因为它是一个非常有用的习惯用语,显然一个通用的实现似乎可行(就像我链接的那个).

Jer*_*fin 6

关于这种可能性存在很多争论,并且至少有一个建议版本的最终auto_ptr结果是参考计数COW指针.

不幸的是,COW的时间已经过去了.使COW指针(或COW-无论如何)线程安全可能会导致严重的性能问题.

编辑:重读一下,我觉得有必要指出,并非所有使用COW都必须过时.有时它仍然有意义.线程安全增量的开销几乎是固定的 - 所以它只是一个对象必须有多大的问题,或复制的成本,COW才有意义.还有一些时间/地方你有很多(未修改的)对象的副本,并且内存的节省可以是一个合理的权衡 - 内存的节省证明了一些额外的处理器时间.如果你可以节省寻呼数据从磁盘/,可以在匆忙出人头地.