[英]recursive lambda via reference
這段代碼正確嗎?
std::function<int(int)> f = [&f](int n) -> int
{
return n <= 1 ? 1 : n * f(n - 1);
};
int x = f(42);
object 在引用 lambda 之前構造是否存在潛在問題? 或者這段代碼絕對正確?
按值捕獲 f 會導致 msvc2010 編譯器崩潰。
這應該可以正常工作,只要您遵循存儲在 lambda 中的堆棧變量的引用規則。 它是定義明確的 C++11 代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.