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