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

History and reasons to use Boost.Container

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 9. Boost.Container

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

PrevUpHomeNext

Боост.Контейнер является продуктом длительной разработки, которая началась в 2004 году с экспериментальной библиотекой Shmem, которая впервые использовала стандартные контейнеры в общей памяти. Shmem включает в себя модифицированный код SGI STL-контейнеров, tweaked для поддержки не-raw allocator::pointer типов и государственных распределителей. После рассмотрения Shmem был принят как Boost.Interprocess, и эта библиотека продолжила доработку и улучшение этих контейнеров.

В 2007 году контейнерный код из узловых контейнеров (map, list, slist) был переписан, переработан и расширен, чтобы построить навязчивую библиотеку контейнеров Boost.Intrusive. Boost.Interprocess контейнеры были перефабрикованы, чтобы использовать преимущества Boost.Intrusive<162> контейнеров и минимизировать дублирование. Обе библиотеки продолжали получать поддержку и исправления ошибок в течение многих лет. Они ввели семантику перемещения, вставку установки и больше функций тогда неизданного стандарта C++0x.

Боост.Интерпроцесс контейнеры всегда были стандартными, и эти контейнеры и новые контейнеры, такие как стабильный_вектор и пласт _[мульти]сет/карта<37><>, были использованы вне Боост.Интерпроцесс с успехом. Поскольку контейнеры были достаточно зрелыми, чтобы получить свою собственную библиотеку, это был естественный шаг, чтобы собрать их контейнеры и построить Boost.Container, библиотека, предназначенная для более широкой аудитории.

С таким количеством высококачественных стандартных реализаций библиотеки, почему вы хотите использовать Boost.Container? Есть несколько причин для этого:

  • Если у вас есть компилятор C++03, вы можете иметь доступ к функциям C++11 и иметь легкую миграцию кода при смене компилятора.
  • Он совместим с Boost.Interprocess аллоцаторы общей памяти.
  • У вас есть чрезвычайно полезные новые контейнеры, такие как stable_vector и flat_[multi]set/map.
  • Если вы работаете на нескольких платформах, у вас будет портативное поведение без зависимости от соответствия реализации std-lib каждой платформы. Некоторые примеры:
    • Конструкторы по умолчанию вообще не выделяют память, что улучшает производительность и обычно подразумевает гарантию без броска (если конструктор по умолчанию или конструктор по умолчанию не бросает).
    • Небольшая оптимизация строки для basic_string.
  • Расширенная функциональность за пределами стандарта на основе обратной связи пользователя для улучшения производительности кода.
  • Вам нужна портативная реализация, которая работает при компиляции без исключений поддержки или вам нужно настроить обработку ошибок, когда контейнер должен сигнализировать об исключительной ошибке.

PrevUpHomeNext

Статья History and reasons to use Boost.Container раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 9. Boost.Container может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 9. Boost.Container ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:42:07/0.0067381858825684/0