Có bất kỳ chi phí nào liên quan đến việc sử dụng biểu thức lambda trong C++ 0x (trong VS2010) không?
Tôi biết rằng việc sử dụng hàm chức năng phải chịu phí, nhưng tôi đang đề cập đến các biểu thức được chuyển tới các thuật toán STL chẳng hạn. Trình biên dịch có tối ưu hóa biểu thức, loại bỏ những gì dường như xuất hiện như một cuộc gọi hàm? Tôi bắt đầu thực sự thích những biểu thức lambda, nhưng tôi hơi lo ngại về hình phạt tốc độ.C++ 0x Lambda overhead
Cảm ơn trước!
Tại sao bạn chắc chắn rằng việc sử dụng các đối tượng hàm (functors) phát sinh chi phí? Chúng cũng có thể được tối ưu hóa! Cách duy nhất để biết là xây dựng với tối ưu hóa đầy đủ được kích hoạt và sau đó nhìn vào hội đồng. – EFraim
Khi tôi nói đối tượng chức năng tôi đã đề cập đến một cái gì đó như tăng :: chức năng, lỗi của tôi. Tôi biết rằng các đối tượng chức năng cổ điển có thể được inlined, và tôi muốn biết nếu điều này xảy ra với lambdas quá. –
ah ok, những người có một số chi phí. Nhưng Lambdas không (trừ khi bạn bọc chúng trong một đối tượng 'std :: function' (không cần sử dụng boost, vì nó đã được chấp nhận vào tiêu chuẩn 0x – jalf