내가 부스트 피닉스를위한 초보자 해요, 제가 코드의 작은 조각을 썼다하지만 완전히 실행 순서에 대해 나를 혼란, 당신은 첫 번째 출력은 "AB" 있지만 코드phoenix :: lambda 함수의 실행 순서는 무엇입니까?
std::vector<int> v;
v.push_back(1);
ph::for_each(v,
ph::lambda[ph::ref(cout)<<"a",
ph::ref(cout)<<"b"
])(v);
ph::for_each(arg1,
ph::lambda[ph::ref(cout)<<"a",
ph::for_each(v,
ph::lambda[ph::ref(cout)<<"b",
ph::ref(cout)<<"c"
]),
ph::ref(cout)<<"d"
])(v);
을 확인할 수 있습니다 두 번째 출력은 "dbca"
실수를 했습니까?
아니요, 실수를했습니다. 차이점은 반환 유형입니다. 공식적인 것은 반환 F이며, 내 자신은 무효입니다. 아마도 이것이 문제입니다. –