這是一個後續問題這個問題:Lambda how can I pass as a parameter轉換lambda表達式爲一個函數指針
MSDN據稱已標記的項目作爲固定的。我看了一下規格說明,但是我很難將它們的規格轉換成語法應該是的。
因此,例如:
void printOut(int(*eval)(int))
{
for(int x = 0; x < 4; ++x)
{
std::cout << eval(x) << std::endl;
}
}
現在說我有拉姆達:
auto lambda1 = [](int x)->int{return x;};
什麼是lambda1
轉換爲功能等同的指針,因此它可以被傳遞給printOut
語法?
另外,實際上在括號裏有什麼東西的lambda表達式呢?例如:
int y = 5;
auto lambda2 = [y](void)->int{return y;};
如果這種拉姆達不能被轉換爲函數指針,有用於使這種類型的lambda表達式來printOut
(或甚至改性的printOut
版本,如果這樣的替代方法什麼語法)?
「MSDN據稱已將該項目標記爲已修復。」 Connect錯誤表示「此問題已得到解決,並將在未來的版本中提供。」它並沒有說該修補程序可用於當前版本的編譯器。 – 2011-05-02 04:28:01
哦。我想我太天真了,假設sp1會包含這個修正:P – helloworld922 2011-05-02 05:29:57
哦;道歉,我沒有看到連接錯誤的日期(我猜想這很有趣,因爲我報告了它)。它可能沒有達到吧,然後進入服務包。 – 2011-05-02 14:28:17