ใน 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