TMP: ¿Cómo generalizar un Producto Cartesiano de Vectores?
Hay una excelente solución de C ++ (en realidad 2 soluciones: una recursiva y una no recursiva), a unaProducto cartesiano de un vector de vectores enteros.. Para propósitos de ilustración / simplicidad, concentrémonos en elversión no recursiva.
Mi pregunta es, ¿cómo se puede generalizar este código con plantillas para tomar unastd::tuple
De vectores homogéneos que se ven así:
{{2,5,9},{"foo","bar"}}
y generar un vector homogéneo detuple
{{2,"foo"},{2,"bar"},{5,"foo"},{5,"bar"},{9,"foo"},{9,"bar"}}
Si facilita la vida, supongamos que los vectores internos en la entrada son homogéneos. Así que entradas como esta sonNo permitido: {{5,"baz"}{'c',-2}}
EDITAR se cambió la entrada del vector irregular a una tupla