5
std :: function ใช้งานอย่างไร?
ตามแหล่งที่มาที่ฉันพบนิพจน์แลมบ์ดาถูกนำไปใช้โดยคอมไพเลอร์ที่สร้างคลาสที่มีตัวดำเนินการเรียกใช้ฟังก์ชันมากเกินไปและตัวแปรที่อ้างอิงเป็นสมาชิก นี้แสดงให้เห็นว่าขนาดของการแสดงออกแลมบ์ดาแตกต่างกันไปและได้รับการอ้างอิงตัวแปรพอที่ขนาดอาจจะมีขนาดใหญ่โดยพลการ std::functionควรจะมีขนาดคงที่แต่ก็จะต้องสามารถที่จะตัดชนิดของ callables ใด ๆ รวมทั้ง lambdas ชนิดเดียวกันใด ๆ มีการใช้งานอย่างไร? หากstd::functionใช้ตัวชี้ไปยังเป้าหมายภายในจะเกิดอะไรขึ้นเมื่อstd::functionอินสแตนซ์ถูกคัดลอกหรือย้าย มีการจัดสรรฮีปที่เกี่ยวข้องหรือไม่?