но не могу использовать динамический полиморфизм, а нужно чтобы примерно такой код заработал. Псевдокод:
class RequestHolder {
public:
void execute() {
std::for_each(std::begin(requests_), std::end(requests_), [](auto& req) {
req.execute(); // ???
});
}
private:
std::vector<std::any> requests_;
};
> не могу использовать динамический полифорфизм > std::any
Ты уже его используешь в std::any
то есть у тебя есть набор классов, почему ты не знаешь то https://t.me/supapro/868664
Пиши свой any_executable
class RequestHolder { public: void operator() () const { for (auto & req : requests_) req(); // ??? } private: std::vector<std::function<void()>> requests_; };
Ну надо начать с того, что реквесты разных типов ты не сможешь положить в контейнер без динамического полиморфизма...
А в requests_ типа лямбды....
Обсуждают сегодня