Atravesar una tupla C ++ en un orden definido en tiempo de ejecución
-
30-10-2019 - |
Pregunta
Es posible iterar sobre una tupla de impulso o STD, pero ¿puedo iterar en un orden determinado en tiempo de ejecución, mientras conserva la información de tipo?
Supongamos que mi tupla estaba llena de objetos de tipo 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;
}
Me gustaría poder atravesar la lista de Foo
tipos, llamando a su doit
métodos, pero en un orden arbitrario definido por, por ejemplo, el valor del rank
miembro.
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow