Size: a a a

2021 February 08

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Это все ещё ничему не мешает. При вызове allocate я знаю Derived, который аллоцирую
Но аллокатор то один и он для Base. Иначе нужен будет отдельный инстанс для каждого Derived типа.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Но аллокатор то один и он для Base. Иначе нужен будет отдельный инстанс для каждого Derived типа.
allocator<Base>.rebind<Derived>
источник

AZ

Alexander Zaitsev in pro.cxx
Кот 13666777
Добрейшего всем вечерочка
не надо меня злить
источник

К1

Кот 13666777 in pro.cxx
злить?
источник

К1

Кот 13666777 in pro.cxx
чем?
источник

AZ

Alexander Zaitsev in pro.cxx
вакансии - в ЛС @AlexFails
источник

К1

Кот 13666777 in pro.cxx
это же другой чат
источник

CD

Constantine Drozdov in pro.cxx
Constantine Drozdov
allocator<Base>.rebind<Derived>
и наличие rebind обязательное для std::list
источник

К1

Кот 13666777 in pro.cxx
А, может ты тогда сразу скажешь в каких еще ты админ, чтобы я не повторил ошибку? =)
источник

D

Dmitriy in pro.cxx
Constantine Drozdov
Базовая мысль в том, что list<any_child_of<Base>> это почти не пессимизация для абсолютно той же структуры хранения. Скажем, логично ожидать alignof(max_align_t) в 16, а для двусвязного списка шапка это 2*sizeof(node*) те же 16
Не логично. В MSVC x64 - 8
источник

AZ

Alexander Zaitsev in pro.cxx
Кот 13666777
А, может ты тогда сразу скажешь в каких еще ты админ, чтобы я не повторил ошибку? =)
а ты просто в каждый заходи и правила читай в описании чата :)
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
allocator<Base>.rebind<Derived>
Не, не всё так просто. Я ж говорю, в общем случае он statefull. Он инициализируется через конструктор. Rebind даёт тип, но нельзя создавать инстанс на каждую аллокацию.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Не, не всё так просто. Я ж говорю, в общем случае он statefull. Он инициализируется через конструктор. Rebind даёт тип, но нельзя создавать инстанс на каждую аллокацию.
У тебя std::list и так живёт через rebind
источник

К1

Кот 13666777 in pro.cxx
Я так всю жизнь потрачу на чтение правил. Быстрее получить ответ с удалением поста. С моей стороны претензий нет ✌️
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
У тебя std::list и так живёт через rebind
Да, у него условно в потрохах сидит allocator::rebind<node_type>::type m_allocator.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Да, у него условно в потрохах сидит allocator::rebind<node_type>::type m_allocator.
Причём в худшем случае на два типа (заглушка и нода с узлом)
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Причём в худшем случае на два типа (заглушка и нода с узлом)
На один. На два это хэшмап наверное :)
источник

LA

Liber Azerate in pro.cxx
Кот 13666777
Я так всю жизнь потрачу на чтение правил. Быстрее получить ответ с удалением поста. С моей стороны претензий нет ✌️
А написать куда сказали и разместить вакансию где надо сложно?
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
На один. На два это хэшмап наверное :)
Ну на голову еще может быть нужно. Суть не сильно меняется.
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Причём в худшем случае на два типа (заглушка и нода с узлом)
Заглушку через аллокатор это помнится да, у msvc такая фигня была. А, даже есть, но только в debug.
источник