2009-07-06 9 views
15

Có sự khác biệt nào giữa boost::shared_ptr, std::tr1::shared_ptr và sắp tới (trong C++0x) std::shared_ptr?Sự khác biệt giữa các hương vị khác nhau của shared_ptr

Sẽ chuyển từ người này sang người khác có bất kỳ chi phí nào hoặc về cơ bản họ giống nhau không?

+2

Không liên quan trực tiếp đến câu hỏi của bạn, nhưng C++ 0x's unique_ptr sẽ là một cải tiến trên scoped_ptr nơi bạn có thể làm những việc như sau: std :: unique_ptr p (new int [10]); –

Trả lời

24

Theo trang web Boost, các boost::shared_ptr ...

... phù hợp với các đặc điểm kỹ thuật TR1, với ngoại lệ duy nhất mà nó nằm trong namespace boost thay vì std::tr1.

Theo Wikipedia C++0x trang

Việc thực hiện TR1 thiếu tính năng con trỏ nhất định như răng cưa và con trỏ số học, nhưng phiên bản C++ 0x sẽ bổ sung này.

Nếu mã của bạn hoạt động với phiên bản TR1/Boost, nó sẽ hoạt động với phiên bản C++ 0x (nhưng không nhất thiết ngược lại).