Tenho dois aliases para gerenciar uma coleção de estados para uma máquina de estados de brinquedo usando ponteiros inteligentes:
using States = std::tuple<std::shared_ptr<State1>, std::shared_ptr<State2>>;
using CurrentState = std::variant<std::shared_ptr<State1>, std::shared_ptr<State2>>;
O exemplo acima tem dois estados, mas eu quero, digamos, 40. Pergunta para minha própria educação: como usar modelos variádicos (ou qualquer outra estratégia) para evitar repetir a typelist de 40 anos em ambos os aliases? Estou tentando evitar usar uma biblioteca TMP externa.
Pergunta possivelmente relacionada: Quero que o objeto sob cuja estrutura esses aliases são definidos possua os estados. Usar ponteiros inteligentes é o caminho a seguir aqui se estou preocupado que cada estado na minha máquina seja muito grande para manter todos eles na pilha? Espero que a pergunta faça sentido.