ใน C++11 มีการแนะนำแลมบ์ดา โดยพื้นฐานแล้วแลมบ์ดาเป็นส่วนหนึ่งของโค้ด ซึ่งสามารถซ้อนอยู่ภายในคำสั่งเรียกใช้ฟังก์ชันอื่นๆ การรวมนิพจน์แลมบ์ดากับคีย์เวิร์ดอัตโนมัติ สามารถนำมาใช้ในภายหลังได้
ใน C++14 นิพจน์แลมบ์ดาเหล่านี้ได้รับการปรับปรุง ที่นี่เราสามารถหาแลมบ์ดาทั่วไปได้ ตัวอย่างเช่น หากเราต้องการสร้างแลมบ์ดาที่สามารถเพิ่มจำนวนเต็ม บวกตัวเลข และเชื่อมสตริงเข้าด้วยกัน เราต้องใช้แลมบ์ดาทั่วไป
ไวยากรณ์ของนิพจน์แลมบ์ดามีลักษณะดังนี้:
[](auto x, auto y) { return x + y; } เรามาดูตัวอย่างหนึ่งเพื่อทำความเข้าใจกันดีกว่า
ตัวอย่าง
#include <iostream>
#include <string>
using namespace std;
main() {
auto add = [](auto arg1, auto arg2) { //define generalized lambda
return arg1 + arg2;
};
cout << "Sum of integers: " << add(5, 8) << endl;
cout << "Sum of floats: " << add(2.75, 5.639) << endl;
cout << "Concatenate Strings: " << add(string("Hello "), string("World")) << endl;
} ผลลัพธ์
Sum of integers: 13 Sum of floats: 8.389 Concatenate Strings: Hello World