Nói rằng tôi có biến sau đây có chứa một lambda:C++ 11 Thay đổi `auto` Lambda thành Lambda khác?
auto a = [] { return true; };
Và tôi muốn a
trở false
sau này. Tôi có thể làm điều gì đó dọc theo dòng này không?
a = [] { return false; };
Cú pháp này mang lại cho tôi những lỗi sau đây:
binary '=' : no operator found which takes a right-hand operand of type
'main::<lambda_a7185966f92d197a64e4878ceff8af4a>' (or there is no acceptable conversion)
IntelliSense: no operator "=" matches these operands
operand types are: lambda []bool()->bool = lambda []bool()->bool
Có cách nào để đạt được một cái gì đó như thế này? Tôi muốn thay đổi biến số auto
thành một lambda khác. Tôi chủ yếu là người mới bắt đầu nên tôi có thể thiếu một số kiến thức về auto
hoặc lambdas. Cảm ơn.
Có 'bool b = true; auto a = [& b] {return b; }; b = false; 'giải pháp nhưng điều này tất nhiên không tổng quát cho tất cả các tình huống. – MSalters