
"Jonathan Turkanis" <technews@kangaroologic.com> wrote
"Andy Little" <andy@servocomm.freeserve.co.uk> wrote
Hi,
Any interest in a shared_object?
I have no idea what you mean, but I'll be posting something called shared_object soon.
I guess what I am after is: shared_object<T> my_obj; // Now my_obj refers to a T, which I can access by reference. //Various ctors: shared_object<T1> my_obj1(a,b,c); shared_object<T2> my_obj2 = my_obj1; //assign my_obj = my_obj1; // assume T is (say) a base of T1. //compare etc my_obj == my_obj1; Reference gives a different guarantee than pointers. Ok Could still be cast to a pointer but .... T& x = my_obj(); // reference *feels* like more obvious semantics than pointer. x.do_it(); *Ideally* my_obj always holds something... never empty. That is I guess problematic from the implementation viewpoint, as it may cause a large number of allocations. However it makes the thing extremely simple to use. Dont really want to have to do this all the time: if( !my_obj.is_empty()){ my_obj().do_it(); } OTOH maybe could do: share_object<T> my_empty_obj(leave_empty()); // then make sure its not empty before going public... As to implementation. Maybe slow.. maybe big, but typically what I would want it for is for say switching views in a GUI app. Not critical on speed or size. shared_object probably implements a garbage collector in fact.
In this case its the object that is shared, not the pointer....
With shared_ptr, the object, not the pointer, is shared.
Aha ... descriptively named then... ;-) regards Andy Little