
On 02/13/2013 06:43 PM, Vicente J. Botet Escriba wrote:
Le 13/02/13 16:46, Ralph Tandetzky a écrit :
* pointer-semantics or value-semantics and nullptr (brought up by Vicente)
- Should the COW-class be nullable? If not, then it should probably not be called cow_ptr. - This question has not been discussed to the end yet. Personally, I don't think that null-cow_ptrs are very useful.
* Different member and non-member functions (brought up by Vicente)
- relational operators (brought up by Vicente)
- It is not clear, whether operator==() on cow_ptrs should only compare pointers or also pointees. This would depend on whether the COW-class is considered a pointer or a genuine value.
If you choose for your class to have value semantics the relational operator should compare pointees.
Vicente I totally agree. And in my opinion making the class have non-nullable value semantics would be the best alternative. I would then call it clone_on_write<T>. Any comments, opinions or suggestions, everybody? That would also bury the idea of having a read_ptr<T> and a write_ptr<T>, where I find the interface unnecessarily complicated without much gain (IMHO).
Ralph