int main() { auto factorial = [&](int n, auto&& self) -> int { if (n <= 1) return 1; return n * self(n - 1, self); // 呼叫自己 }; std::cout << "Factorial of 5: " << factorial(5, factorial) << std::endl; return 0; }
如果你要實現類似功能,可以像這樣:
auto f = [&](int f) {
// 實現內容
return f * f; // 返回值示例:計算平方
};
如果需要明確返回型別,你可以新增 -> 返回型別
:
auto f = [&](int f) -> int {
// 實現內容
return f * f; // 返回一個 int 型別
};
C++ 的 lambda 表示式捕獲列表 [&]
意味著可以透過引用訪問外部作用域中的變數。