我升壓鳳一個新手,我寫了一小塊的代碼,但它完全混淆了我關於執行順序,你可以檢查代碼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);
第一輸出爲「AB」 但第二個輸出是「dbca」
我犯了一些錯誤嗎?
不,我犯了一個錯誤,區別是返回類型,官方是返回F,我自己的一個是無效的,也許這是問題。 – 2012-01-15 15:58:54