Vermeiden Sie verschachtelte for-Schleifen beim Durchsuchen des Parameterraums
Beim Schreiben von Unit-Tests möchte ich häufig eine Funktion mit einer Kombination von Parametern aufrufen. Zum Beispiel habe ich eine Funktion, die als deklariert ist
void tester_func(int p1, double p2, std::string const& p3);
und einige ausgewählte Parameter
std::vector<int> vec_p1 = { 1, 2, 666 };
std::vector<double> vec_p2 = { 3.14159, 0.0001 };
std::vector<std::string> vec_p3 = { "Method_Smart", "Method_Silly" };
Was ich derzeit mache, ist einfach
for(auto const& p1 : vec_p1)
for(auto const& p2 : vec_p2)
for(auto const& p3 : vec_p3)
tester_func(p1, p2, p3);
Jedoch,Sean Parent Schlägt vor, explizite Schleifen zu vermeiden und zu verwendenstd::
Algorithmen statt. Wie kann man diesen Rat im oben genannten Fall befolgen? Irgendwelche Redewendungen? Was ist der sauberste Weg, um eine Variadic-Vorlage zu schreiben, die dies tut? Was ist der beste Wegohne C ++ 11 Funktionen?