Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Smart Pointer Changes

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Smart Pointer Changes

Изменение в феврале 2002 года на интеллектуальные указатели Boost внесло ряд изменений. Поскольку предыдущая версия умных указателей использовалась в течение длительного времени, полезно иметь подробный список того, что изменилось с точки зрения пользователя библиотеки.

Обратите внимание, что для компиляторов, которые недостаточно хорошо поддерживают шаблоны участников, используется отдельная реализация, которая не имеет многих новых функций и больше похожа на старую версию.

Features Requiring Code Changes to Take Advantage

  • Умные шаблоны класса указателей теперь имеют свой собственный файл заголовка. Для совместимостиHeader теперь включает в себя заголовки для четырех классических шаблонов класса умных указателей.
  • Добавлен шаблонweak_ptr.
  • Новыйshared_ptrиshared_arrayослабить требование о том, чтобы деструктор заостренного объекта был виден при инстанцировании деструктораshared_ptr. Это облегчает совместное использование членов ptr в классах без явных деструкторов.
  • При созданииshared_ptrилиshared_array может быть передан пользовательский распределитель..
  • shared_static_castиshared_dynamic_castпредставлены шаблоны функций, которые работают дляshared_ptrиweak_ptr, какstatic_castиdynamic_castдля указателей.
  • Недостаток самоназначения был удален изshared_ptr::reset, хотя он все еще присутствует вscoped_ptrи вstd::auto_ptrВызовсбросас указанием на объект, который уже принадлежитshared_ptr, приводит к неопределенному поведению (утверждение или в конечном итоге двойное удаление, если утверждения выключены).
  • BOOST_SMART_PTR_CONVERSIONУдалена функция.
  • shared_ptrтеперь разрешено.

Features That Improve Robustness

  • Манипуляции с использованием теперьбезопасны для потоковна Windows, Linux и платформах, поддерживающих pthreads. См.файл для деталей
  • Новый файл shared_ptr всегда удаляет объект, используя указатель, с которым он был изначально построен. Это предотвращает тонкие проблемы, которые могут возникнуть, если последнийshared_ptrбыл указателем на подобъект класса, у которого не было виртуального разрушителя.

Implementation Details

  • Некоторые ошибки в реализациях оператора присваивания и всбросебыли исправлены с помощью идиомы «копирование и своп».
  • Для проверки предварительных условий различных функций были добавлены утверждения; однако, поскольку они используют новый заголовок, утверждения по умолчанию отключены.
  • Частичная специализацияstd::lessбыла замененаоператором<перегрузки, которые выполняют то же самое, не полагаясь на неопределенное поведение.
  • Неправильная перегрузкаstd::swapбыла замененаboost::swap, который имеет много одинаковых преимуществ для общего программирования, но не нарушает стандарт C++.

$Date$

Авторское право 2002 Дарин Адлер. Распространяется под лицензией Boost Software License, версия 1.0. См. сопроводительный файл LICENSE_1_0.txt или копию по адресу http://www.boost.org/LICENSE_1_0.txt

Статья Smart Pointer Changes раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:59:17/0.0084679126739502/1