
I think the safety goes first. So build you share_ptr<X> the way you do, IMO. On Sun, Jul 27, 2008 at 4:15 PM, Daniel Frey <d.frey@gmx.de> wrote:
Hi,
I have a question on make_shared. Consider a class which intends to force all instances to be handled via a shared_ptr. I used to do this by putting the ctors into the private section and adding static create()-methods in the public section. Example:
class X { private: X( int, double );
public: static shared_ptr<X> create( int i, double d ) { return shared_ptr<X>( new X( i, d ) ); } };
Replacing the returned expression with make_shared<X>( i, d ) wouldn't work, since it requires a public ctor.
Is there any solution to this or do I have to make a decision between efficiency and a safe interface for X?
Regards, Daniel
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Alp Mestan --- http://blog.mestan.fr/ --- http://alp.developpez.com/ --- In charge of the Qt, Algorithms and Artificial Intelligence sections on Developpez