C++11-এ অ্যানোনিমাস (anonymous) ফাংশন তৈরি করার জন্য ল্যাম্বডা এক্সপ্রেশন চালু করা হয়েছে। STL অ্যালগরিদমের সাথে ব্যবহার করার জন্য খুব সুবিধাজনক।
উদাহরণ
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> myvector = {1, 2, 3};
for_each(myvector.begin(), myvector.end(), [](int x) {
cout << x * x << endl;
});
}
আউটপুট
1 4 9
সিনট্যাক্স
[ captures ] ( params ) mutable(optional) noexcept(optional) -> return_type { body }
[]: ক্যাপচার লিস্ট (লোকাল ভেরিয়েবল ল্যাম্বডার ভিতরে আনা)(): প্যারামিটার লিস্ট-> return_type: রিটার্ন টাইপ (অপশনাল, সাধারণত ডেডিউস হয়){}: ফাংশন বডি
ক্যাপচার উদাহরণ
int factor = 10;
auto lambda = [factor](int x) { return x * factor; }; // value capture
auto lambda2 = [&factor](int x) { return x * factor++; }; // reference capture
auto lambda3 = [=](int x) { return x * factor; }; // সব লোকাল value capture
auto lambda4 = [&](int x) { return x * factor; }; // সব লোকাল reference capture
ল্যাম্বডা ফাংশনাল প্রোগ্রামিং স্টাইল এবং STL অ্যালগরিদমের সাথে খুব শক্তিশালী।