gpt4 book ai didi

c++ - 局部静态函数对象的初始化是线程安全的吗?

转载 作者:可可西里 更新时间:2023-11-01 18:25:44 26 4
gpt4 key购买 nike

以下两个函数生成不同的程序集,这告诉我它们是不同的。有人能告诉我他们有什么不同吗? 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com