Tôi đã cố gắng tạo một vectơ lambda, nhưng không thành công:
auto ignore = [&]() { return 10; }; //1
std::vector<decltype(ignore)> v; //2
v.push_back([&]() { return 100; }); //3
Cho đến dòng số 2, nó biên dịch tốt . Nhưng dòng số 3 đưa ra lỗi biên dịch :
lỗi: không có hàm phù hợp để gọi đến 'std :: vector <main () :: <lambda () >> :: push_back (main () :: <lambda ()>)'
Tôi không muốn một vectơ của con trỏ hàm hoặc vectơ của các đối tượng hàm. Tuy nhiên, vectơ của các đối tượng hàm đóng gói các biểu thức lambda thực , sẽ phù hợp với tôi. Điều này có khả thi không?