2010-09-30 4 views

ответ

20

Нет, документация повышающего shared_ptr говорит:

Эта реализация соответствует спецификации TR1, с единственным исключением того, что он находится в пространстве имен подталкивания вместо станда :: TR1.

+8

Ах. Итак, есть одна разница. – gregg

+3

Реализации могут отличаться при сохранении соответствия; В частности, операторы разыменования 'boost :: shared_ptr' используют' Boost.Assert' для проверки NULL (т. Е. Пустоты) перед выполнением разыменования; а 'libC++' 's' std :: shared_ptr' не имеет такой проверки. В случае, если вы ударите эту ошибку во время выполнения, это будет означать отказ от утверждения, а другой - ошибку сегментации (возможно). – rvalue