При написании библиотек периодически сталкиваюсь с задачей обращения к экземпляру типа внутри std::tuple по индексу в runtime. Готового решения нет, есть std::apply, который передаёт сразу все экземпляры в функтор в виде аргументов, но мне нужен только один.
Предположим, есть бинарный протокол управления устройством, имеется набор команд, каждая команда это класс, реализуется некоторый шаблонный класс протокола, которому шаблонными параметрами передаются все команды и они хранятся в std::tuple.
При написании библиотек периодически сталкиваюсь с задачей обращения к экземпляру типа внутри std::tuple по индексу в runtime. Готового решения нет, есть std::apply, который передаёт сразу все экземпляры в функтор в виде аргументов, но мне нужен только один.
Предположим, есть бинарный протокол управления устройством, имеется набор команд, каждая команда это класс, реализуется некоторый шаблонный класс протокола, которому шаблонными параметрами передаются все команды и они хранятся в std::tuple.
Пример реализации: