0
아래 demo은 12
대신 21
을 인쇄합니다. 왜?가변 템플릿 함수는 람다 매개 변수를 역순으로 호출합니까?
#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);
}
vC++ 및 g ++로 테스트했습니다. 두 결과 모두 같습니다.
표준적인 동작입니까? 그렇다면 어떤 규칙이 적용되며 그 이유는 무엇입니까?
컴파일러에 의존합니까?
역순으로는 a way이 있지만, 조금 비협조적이라고 생각합니다.
@cppBeginner 예, 설명이 있지만 설명에서 설명 할 수 없습니다. 새로운 질문을 올리십시오. – Brian