TMP: Wie verallgemeinert man ein kartesisches Produkt von Vektoren?
Es gibt eine ausgezeichnete C ++ - Lösung (eigentlich 2 Lösungen: eine rekursive und eine nicht rekursive), um eineKartesisches Produkt eines Vektors ganzzahliger Vektoren. Zur Veranschaulichung / Vereinfachung wollen wir uns nur auf das konzentrierennicht rekursive Version.
Meine Frage ist, wie man diesen Code mit Vorlagen verallgemeinern kann, um eine zu nehmenstd::tuple
von homogenen Vektoren, die so aussehen:
{{2,5,9},{"foo","bar"}}
und erzeugen einen homogenen Vektor vontuple
{{2,"foo"},{2,"bar"},{5,"foo"},{5,"bar"},{9,"foo"},{9,"bar"}}
Wenn es das Leben leichter macht, nehmen wir an, dass die internen Vektoren in der Eingabe jeweils homogen sind. Also sind solche Eingabennicht erlaubt: {{5,"baz"}{'c',-2}}
BEARBEITEN Eingabe von gezackten Vektor in Tupel geändert