Size: a a a

2020 December 09

ID

In Dev in pro.cxx
Valentin Kornienko
Если хотите попробовать - почитайте, что такое CRTP.
Я знаю, что такое CRTP
источник

VK

Valentin Kornienko in pro.cxx
Или же посмотрите, как работает std::variant + std::visit
источник

VK

Valentin Kornienko in pro.cxx
In Dev
Альтернатива это интерфейс и виртуальные функции, вопрос есть ли выигрыш по сравнению с этим?
Нет, откуда ему взяться
источник

ID

In Dev in pro.cxx
Отсутствие vtable?
источник

VK

Valentin Kornienko in pro.cxx
In Dev
Отсутствие vtable?
Embedded что-ли?
источник

ID

In Dev in pro.cxx
Нет, но хайлоад
источник

VK

Valentin Kornienko in pro.cxx
Под железо пишете?
источник

ID

In Dev in pro.cxx
Скажем, ищу самую эффективную реализацию Стратегии
источник

VK

Valentin Kornienko in pro.cxx
In Dev
Нет, но хайлоад
Не думаю, что вы таким образом что-то выиграете. Можно попробовать сделать если сделать std:: function аллоцирующийся в std:: aligned_storage фиксированного размера, больше, чем дефолтный
источник

D

Dmitriy in pro.cxx
std::function в том же GCC9 имеет всего 16 байт SOO буфер, влезть туда ой как непросто
источник

ID

In Dev in pro.cxx
Valentin Kornienko
Или же посмотрите, как работает std::variant + std::visit
Не совсем понимаю, как вариант может помочь изменить в рантайме стратегию... Только если вариант содержит все возможные, собственно, варианты стратегий)
источник

VK

Valentin Kornienko in pro.cxx
Dmitriy
std::function в том же GCC9 имеет всего 16 байт SOO буфер, влезть туда ой как непросто
Правильно. Можно подсунуть ему буфер больше. Или написать свой function
источник

VK

Valentin Kornienko in pro.cxx
In Dev
Не совсем понимаю, как вариант может помочь изменить в рантайме стратегию... Только если вариант содержит все возможные, собственно, варианты стратегий)
Поменять хранимый тип в нем.
источник

ID

In Dev in pro.cxx
Valentin Kornienko
Поменять хранимый тип в нем.
Обновил комментарий
источник

D

Dmitriy in pro.cxx
Valentin Kornienko
Правильно. Можно подсунуть ему буфер больше. Или написать свой function
Писать свой function удовольствие то ещё (в перерасчёте на затраты времени) , а вот как подсунуть буфер?
источник

ID

In Dev in pro.cxx
Хорошо, какая тогда самая эффективная реализация паттерна?
источник

D

Dmitriy in pro.cxx
Dmitriy
Писать свой function удовольствие то ещё (в перерасчёте на затраты времени) , а вот как подсунуть буфер?
В C++17 возможность задавать аллокатор в конструкторе убрали (да и работало там так себе)
источник

D

Danya in pro.cxx
In Dev
Хорошо, какая тогда самая эффективная реализация паттерна?
Надо убрать std::function
источник

ID

In Dev in pro.cxx
Danya
Надо убрать std::function
И написать...?
источник

D

Danya in pro.cxx
Единственное что я могу придумать — это перенести Logic в шаблонные параметры Test из метода
источник