我在学习lambda时遇到了这个问题, 这是从Visual Studio 2017以Debug X86模式运行的
int main()
{
int i=0;
double j=0;
auto lambda = [i,j]()
{
std::cout<<sizeof(j)<<std::endl;
std::cout<<sizeof(i)<<std::endl;
};
l();
std::cout<<sizeof(lambda);
}
如果两个字段均为int
,则得到的大小为8
(4 + 4)。对于double
和int
,我期望得到12
(8 + 4)的输出,但是它却给了我16
。