Необходимо вызвать тривиальный деструктор в стандартных контейнерах.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Необходимо вызвать тривиальный деструктор в стандартных контейнерах.

Сообщение Anonymous »

Я реализую свою собственную версию контейнеров, соответствующих стандартам. Я прочитал следующее. В нем говорится, что элементы следует уничтожать с помощью распределителя уничтожения. Означает ли это, что контейнер должен вызывать деструктор элементов, даже если это тривиально? Моя интерпретация такова: сначала нам нужно вызвать деструктор. Если да, то мы должны использовать распределитель-разрушитель. В противном случае нам также не нужно вызывать уничтожение распределителя. Согласно этой интерпретации, мы можем пропустить вызов уничтожения распределителя для элементов с тривиальным деструктором. Это может привести к оптимизации контейнеров последовательностей.
Из стандарта cpp20:

Для компонентов, на которые распространяется действие этого подпункта, которые объявить

Код: Выделить всё

allocator_type
, объекты, хранящиеся в этих компонентах, должны быть
созданы с использованием функции

Код: Выделить всё

allocator_traits::rebind_traits::construct
и
уничтожается с помощью функции

Код: Выделить всё

allocator_traits::rebind_traits::destroy
(20.10.9.2), где U — это либо allocator_type::value_type, либо
внутренний тип, используемый контейнером.


Подробнее здесь: https://stackoverflow.com/questions/792 ... containers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему в контейнерах STL в контейнерах STL нет перегрузки RVALUE Ref-квалификации?
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Тривиальный журнал Boost — пользовательское имя серьезности
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Почему тривиальный виджет Qopenglwidget появляется с черным фоном?
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Почему тривиальный виджет Qopenglwidget появляется с черным фоном?
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как вызвать деструктор одноэлементных классов без CRT
    Anonymous » » в форуме C++
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»