
23 Feb
2010
23 Feb
'10
8:55 p.m.
2010/2/23 Chard
[...]
From smart_ptr/shared_ptr.hpp:
[A] template<class Y> [B] explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()
By the way, shouldn't this constructor take std::auto_ptr by value instead of by reference. I remember being forced to introduce a local variable with the example below (was with sunstudio 12, default STL if I remember correctly). I think this was caused because you can not bind a temporary object to a non const reference. struct T {}; std::auto_ptr<T> factory(); void failedCompile() { boost::shared_ptr<T> p( factory() ); } // Needed to be modified as: void compile() { std::auto_ptr<T> temp = factory(); boost::shared_ptr<T> p( temp ); } Baptiste.