gpt4 book ai didi

c++ - 旧 C++ 编译器中的防护

转载 作者:行者123 更新时间:2023-11-28 05:39:06 28 4
gpt4 key购买 nike

我有一个需要在 gcc 4.4 上编译的多线程应用程序,我不允许使用 c++0x 标志。

我希望一个变量以原子方式运行,但不幸的是没有 C++0x 标志我无法使用 atomic<T>在 C++ 中。

我试过了 boost::atomic但它给了我一个错误说

ISO C++ forbids declaration of "atomic" with no type

在这些条件下是否有任何其他方法可以实现原子性,我可以使用 fencing - 如果可以,那么是否有指南或常用命令来在旧 C++ 中实现 fencing。

最佳答案

正如 Sam Varshavchik 在上面的评论中所建议的那样,使用 POSIX std::mutex 我们可以保护多线程应用程序中的变量。

std::mutex 有点矫枉过正,但它是 gcc 4.4 中最好的。

C++11 atomic 在解决这个问题上做得更好,但只适用于较新的编译器。

关于c++ - 旧 C++ 编译器中的防护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37581502/

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