以下两个函数产生不同的程序集,这告诉我它们是不同的。有人能告诉我他们有什么不同吗?func2中的函数局部静态变量初始化是否线程安全?如果答案取决于编译器,我想知道最常见的编译器如何处理 func2。
int func1(int val)
{
const auto impl = [](int v)
{
return v * 10;
};
return impl(val);
}
int func2(int val)
{
static const auto impl = [](int v)
{
return v * 10;
};
return impl(val);
}