6
Nếu tôi có một hàm xác định một lambda, thì lamda sẽ được 'xây dựng' mỗi khi hàm được gọi? Tôi có nên làm cho nó tĩnh để ngăn chặn điều đó?Tôi có nên làm lambdas tĩnh không?
void func(int x)
{
static auto lambda = [&x](int y) -> bool {
// ...
};
}
Ồ, đúng vậy. Điều gì sẽ xảy ra nếu nó không ghi lại biến bằng cách tham chiếu? –
Nếu lambda đủ lớn để đảm bảo những lo lắng này, bạn chỉ có thể làm cho nó trở thành một chức năng toàn cầu và chuyển giá trị được ghi lại như một đối số bổ sung. –
@Kerrek SB: Không lớn lắm, tôi chỉ tò mò thôi. –