Типы разные => класс шаблонный. Edit: Если Вам нужен объект целиком, разумеется.
template <Callable> class T ...
А вместо вектора таких классов использовать tuple?
ну очевидно что T нешаблонный же
Внезапно, да. Разнотипные замыкания только на компиляции и возникают ведь.
Тогда тип функции офк, потому что если он не шаблонный и в нем лямбда его производительность 100 часов в запрос
относительно чего? сишного коллбека?
Но вот только их число и выбор конкретных типов – это вполне вопрос рантайма
Ты опять забыл, выбор между сишным коллбеком и function с моей точки зрения чисто логический. Я вообще стою на позиции "пиши на плюсах как красивее, а потом профилируй"
Но не самих типов. Т.е. все еще сводимо к "типобезопасным" решениям, хотя и сами ситуации представляются с некоторым трудом (по сути мы хотим хранить околопроизвольный объект).
Типичная задача – хранить подписчиков на некоторое событие
подписчика, всегда единственное число, мультипликатор отдельная операция
угу, давайте в акторном фреймворке делать мультипликатор и подписчика отдельно, ведь пара аллокаций на сообщение это фигня по сравнению с накладными расходами std::function... ))
да не в аллокациях дело, я же уже сказал, function отличная штука НО хочет копируемость так что бесполезен, move_only_function
Только вот мы их храним буквально, а не рефаем (единый интерфейс у них по-умолчанию все-таки, иначе не взлетит вообще), потому задача все еще сводится к "мы хотим хранить произвольный объект".
там мысль в том, что логически ты будешь хранить RAII отписки, а если слот один вместо этого ты хранишь на кого подписан
Обсуждают сегодня