2009-07-06 7 views
15

Czy są jakieś różnice między boost::shared_ptr, std::tr1::shared_ptr a nadchodzącym (w C++0x) std::shared_ptr?Różnice między różnymi smakami shared_ptr

Czy przenoszenie z jednego do drugiego ma jakiś narzut lub czy są one w zasadzie takie same?

+2

Nie jest to bezpośrednio związane z twoim pytaniem, ale unikalna_ptr C++ 0x będzie ulepszeniem w scoped_ptr, gdzie możesz zrobić takie rzeczy: std :: unique_ptr p (new int [10]); –

Odpowiedz

24

Według strony internetowej Boost boost::shared_ptr ...

... zgodny ze specyfikacją TR1, z tą tylko różnicą, że ona znajduje się w przestrzeni nazw boost zamiast std::tr1.

Według Wikipedia C++0x stronie

Realizacja TR1 brakowało pewnych funkcji, takich jak aliasing pointer pointer i arytmetyki, ale wersja C++ 0x doda nich.

Jeśli twój kod działa z wersją TR1/Boost, powinien działać z wersją C++ 0x (ale niekoniecznie odwrotnie).