Мне было интересно, существуют ли различия между boost::shared_ptr
и std::shared_ptr
, найденными в стандартном файле <memory>
.
Разница между boost:: shared_ptr и std:: shared_ptr из стандартного файла <memory>
Ответ 1
std::shared_ptr
- это форма С++ 0x tr1::shared_ptr
, а boost boost::shared_ptr
должен вести себя одинаково.
Однако std::shared_ptr
в реализации, которая соответствует стандарту С++ 0x, должна/иметь более удобное поведение в классе shared_ptr
, как описано в следующих ссылках:
shared_ptr
- это указатель с подсчетом ссылок, который действует как можно больше, как обычный указатель данных С++. В реализации TR1 не хватало некоторых указательных функций, таких как алиасирование и арифметика указателей, но версия С++ 0x добавит их.
Хотя из быстрого беглого взгляда я не вижу operator+
и подобных арифметических операций в типе shared_ptr
.