Size: a a a

2020 April 17

A

Alex in pro.cxx
Аллокатор для std контейнеров обязан быть шаблонным? Он не может принимать и возвращать просто void*?
источник

ИI

И Ivan in pro.cxx
Alex
Аллокатор для std контейнеров обязан быть шаблонным? Он не может принимать и возвращать просто void*?
Можно сделать обертку, которая из void сделает шаблон. Вроде так и сделано в аллокаторах нового типа.
То есть аллокатор делится на 2 части - низкоуровневая, которая возвращает void и высокоуровневая, которая инициализирует значение соответствующего типа
источник

A

Alex in pro.cxx
понятно, то есть впрямую избавиться от параметра нельзя, спасибо
источник

IA

Ivan Azoyan in pro.cxx
Короткий, вопрос. Когда приходишь в цикле по std::variant и вызываешь метод, вызывается он у конкретного типа. А как диспетчеризируется в конкретный тип? У std::variant а конструкторе тегом помечается конкретный тип?
источник

v

vehlwn in pro.cxx
Ivan Azoyan
Короткий, вопрос. Когда приходишь в цикле по std::variant и вызываешь метод, вызывается он у конкретного типа. А как диспетчеризируется в конкретный тип? У std::variant а конструкторе тегом помечается конкретный тип?
std::visit([](auto&& arg) {
   using T = std::decay_t<decltype(arg)>;
}, variant);
...
источник

IA

Ivan Azoyan in pro.cxx
Нет нет) клиентский код мне не нужен. Расскажи, как там внутри лучше. Как визит понимает, что это конкретный тип, например
источник

v

vehlwn in pro.cxx
Ivan Azoyan
Нет нет) клиентский код мне не нужен. Расскажи, как там внутри лучше. Как визит понимает, что это конкретный тип, например
Хочешь узнать как работает std::get (std::variant)?
источник

v

vehlwn in pro.cxx
Перебором наверно.
источник

PK

Pavel Kazakov in pro.cxx
можно сделать вариант на 10к элементов и посмотреть насколько быстро он отработает :) мне почему-то кажется, что он так делать не будет
источник

IA

Ivan Azoyan in pro.cxx
В смысле с перебором, там же Юнион под ним
источник

IA

Ivan Azoyan in pro.cxx
Должна быть диспетчеризация
источник

z

zeroid in pro.cxx
Рантайм полиморфизм, но без виртуальных таблиц
источник

IA

Ivan Azoyan in pro.cxx
А с обычной таблицей) по скорости это такой же переход по указателю или нет? Думаю нет, в конструкторе варианта зашивается тип. Правильно?
источник

v

vehlwn in pro.cxx
Ivan Azoyan
А с обычной таблицей) по скорости это такой же переход по указателю или нет? Думаю нет, в конструкторе варианта зашивается тип. Правильно?
Почему в конструкторе? Рядом с юнионом лежит номер активного поля.
источник

IA

Ivan Azoyan in pro.cxx
Ну ты же когда вариант создаёшь, знаешь конкретный тип из чего создаёшь. Вот и записываешь его
источник

v

vehlwn in pro.cxx
Ivan Azoyan
Ну ты же когда вариант создаёшь, знаешь конкретный тип из чего создаёшь. Вот и записываешь его
Кроме конструктора вариант больше нельзя нигде мутировать?
источник

GK

Gleb Koveshnikov in pro.cxx
Pavel Kazakov
можно сделать вариант на 10к элементов и посмотреть насколько быстро он отработает :) мне почему-то кажется, что он так делать не будет
разве там нет ограничения?
источник

PK

Pavel Kazakov in pro.cxx
Gleb Koveshnikov
разве там нет ограничения?
никогда это не интересовало, но вот можно и проверить)))
источник

IA

Ivan Azoyan in pro.cxx
vehlwn
Кроме конструктора вариант больше нельзя нигде мутировать?
Ну будет какой-то оператор присваивания, но туда тоже пихаешь конкретный тип
источник

IA

Ivan Azoyan in pro.cxx
Где админы вообще?
источник