gpt4 book ai didi

c++ - 如果功能有副作用,可以优化掉吗?

转载 作者:可可西里 更新时间:2023-11-01 17:39:11 29 4
gpt4 key购买 nike

我想在主线程上初始化一些静态数据。

int32_t GetFoo(ptime t)
{
static HugeBarData data;
return data.Baz(t);
}

int main()
{
GetFoo(); // Avoid data race on static field.
// But will it be optimized away as unnecessary?

// Spawn threads. Call 'GetFoo' on the threads.
}

如果编译器可能决定删除它,我怎么能强制它留在那里?

最佳答案

C++ 编译器可以优化掉的唯一副作用函数是不必要的构造函数调用,尤其是复制构造函数。

参见 Under what conditions does C++ optimize out constructor calls?

关于c++ - 如果功能有副作用,可以优化掉吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24559875/

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