作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
以下两个函数生成不同的程序集,这告诉我它们是不同的。有人能告诉我他们有什么不同吗? 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);
}
最佳答案
“最常见的编译器”可能在这一点上有所不同,因为它们对 C++11 的支持并不完全相同。
在 C++11 中,静态变量的初始化是线程安全的。在 C++03 中它不是(因为根据标准没有任何线程)。
关于c++ - 局部静态函数对象的初始化是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939484/
我是一名优秀的程序员,十分优秀!