我正在使用 C + + 中的一些 lambda 的内存,但是我对它们的大小有点困惑。
下面是我的测试代码:
#include <iostream>
#include <string>
int main()
{
auto f = [](){ return 17; };
std::cout << f() << std::endl;
std::cout << &f << std::endl;
std::cout << sizeof(f) << std::endl;
}
结果是:
17
0x7d90ba8f626f
1
这表明我的 lambda 的大小是1。
这怎么可能?
难道 lambda 不应该至少是一个指向其实现的指针吗?