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

Scary Iterators

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 17. Boost.Intrusive

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

В статье N2913, озаглавленнойНазначение и инициализация SCARY-итератора, предлагается требование о том, что типы итераторов стандартного контейнера не зависят от какого-либо аргумента типа, кроме типа контейнера<value_type>,<difference_type>,<pointertype>и<const_pointer>. В частности, согласно предложению, типы итераторов стандартного контейнера не должны зависеть от типов контейнера<key_compare>,<hasher>,<key_equal>или<allocator>.

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

Навязчивыеконтейнеры немного отличаются от стандартных контейнеров. В частности, они не имеют параметра распределителя и могут быть сконфигурированы с дополнительными опциями, не присутствующими в STL-подобных контейнерах. Таким образом,Boost.Intrusiveпредлагает свою собственную<SCARYiterator>реализацию, где типы итераторов не изменяются, когда контейнер настроен с опцией, которая не изменяет преобразование значения<->узла. Более конкретно, следующие варианты и условия гарантируют, что типы итераторов не изменятся:

  • Все контейнеры:<size_type<>>,<constant_time_size<>>,
  • <slist>:<cache_last<>>,<linear<>>,
  • <unordered_[multi]set>:<hash<>>,<equal<>>,<power_2_buckets<>>,<cache_begin<>>.
  • Все древовидные контейнеры<[multi]set>,<avl_[multi]set>,<sg_[multi]set>,<bs_[multi]set>,<splay_[multi]set>,<treap_[multi]set>:<compare<>>.
  • <treap_[multi]set>:<priority<>>
  • <bs_[multi]set>,<sg_[multi]set>,<treap_[multi]set>,<splay_[multi]set>: Они имеют один и тот же тип итератора при настройке с одинаковыми опциями.

PrevUpHomeNext

Статья Scary Iterators раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 17. Boost.Intrusive может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 17. Boost.Intrusive ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 16:56:23/0.0063610076904297/0