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
scroll top