Составление forward_list из вариационного шаблона

у меня есть std::forward_list и у меня есть класс Delegate (взято из Вот), который имеет класс с сигнатурой типа variadic (typename return_type, typename... Args).

Я хочу сделать std::forward_list из этих Delegates. Как бы я поступил так? Я пытался:

std::forward_list<Delegate<void, typename...> > но это дает синтаксическую ошибку. Я также хотел бы добавить к этому списку позже. Я могу гарантировать, что каждый из этих списков (будет несколько) будет иметь только Delegate типы, которые принимают одинаковое количество параметров, хранящихся вместе. Однако каждый список может иметь список методов, которые принимают параметры, отличные от методов в других списках.

Эти списки на самом деле будут внутри std::unordered_map,

0

Решение

Во-первых, похоже, что вы должны использовать unordered_multimap вместо карты со списками в качестве значений.

Тем не менее, если вы пытаетесь хранить типы в контейнере STL, которые даже немного отличаются, вам нужно создать базовый класс и хранить их как указатели на этот базовый класс. Вы упомянули, что все значения в одном списке будут иметь одинаковое количество параметров, но вы не указали, что параметры будут полностью идентичны.

1

Другие решения


По вопросам рекламы [email protected]