Die folgenden demo Drucke 21
anstelle von 12
. Warum?Funktioniert Variadic Template-Funktion Lambda-Parameter in umgekehrter Reihenfolge?
#include <iostream>
template<class... F> void callMany(F... fib){
[&](...){}(
(fib(),123)...
);
}
int main()
{
auto f1=[&](){std::cout<<"1";};
auto f2=[&](){std::cout<<"2";};
callMany(f1,f2);
}
Ich habe es mit vC++ und g ++ getestet. Beide Ergebnisse sind gleich.
Ist es ein Standardverhalten? Wenn ja, welche Regeln und warum?
Kommt es auf den Compiler an?
Es gibt a way um es umzukehren, aber ich denke, es ist ein bisschen unabhängig.
@cppBeginner Ja, gibt es, aber ich kann es nicht in einem Kommentar erklären. Sie sollten eine neue Frage stellen. – Brian