Traverser un tuple C ++ dans une commande définie au moment de l'exécution
-
30-10-2019 - |
Question
Il est possible d'itérer sur un coup de pouce ou un tuple STD, mais puis-je itérer dans une commande déterminée au moment de l'exécution, tout en conservant des informations de type?
Supposons que mon tuple était rempli d'objets de type Foo
:
#include <tuple>
using namespace std;
template <typename ...> void bar(); // Definition omitted.
template <typename ... Ts>
struct Foo {
void doit() { bar<Ts...>(); }
int rank;
};
int main(int argc, char *argv[])
{
auto tup = make_tuple(Foo<int,double>(),
Foo<bool,char,float>());
get<0>(tup).rank = 2;
get<1>(tup).rank = 1;
return 0;
}
Je voudrais pouvoir parcourir la liste de Foo
types, appelant leur doit
Méthodes, mais dans un ordre arbitraire défini par, disons, la valeur du rank
membre.
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow