hier anwenden:Wie das Idiom nennen eine Reihe von mit einer Funktion zu einem variadische Pack ist das Idiom in Frage
template<typename... T>
void f(T... t) {
int temp[] = {(g(t), 0)...};
}
Dies als g(t0); g(t1); ...
kompiliert werden, Anrufe Reihenfolge der Funktion von C + garantiert +11 [dcl.init.list]/4.
Eine bessere Version verwendet std::initializer_list
anstelle von Array, aber es ist nicht wichtig hier.
Die Frage ist: wie sollen wir dieses Idiom nennen?
Upd:
Im Grunde ist es die Sprache, die wir es den Leuten verwenden anstelle von Rekursion raten sollte, dh zwei Überlastungen
void f() {}
void f(H head, T... tail) { g(head); f(tail...); }
mit Einzel
void f(T... t) { int temp[]{(g(t), 0)...}; }
Natürlich können wir es "Ein Idiom, das durch die Fold Expressions ersetzt wird" nennen, aber ich hoffe, dass es einen richtigen Ausdruck dafür gibt es.
Btw, in C++ 1z wird dies wahrscheinlich ersetzt durch [Falten Ausdrücke] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html) – Abyx
"pack expansion" scheint es zu bedecken, ja? –
@ Cheersandthth.-Alf, danke, behoben. Nein, es ist nicht nur eine "Pack-Erweiterung" - die Verwendung des Arrays spielt hier eine Schlüsselrolle. Es ist ein bisschen "diese Idion vs Rekursion" Ding – Abyx