命名空间"std"中没有名为"原子"的类型

No type named 'atomic' in namespace 'std'

本文关键字:原子 类型 std 命名空间      更新时间:2023-10-16

为什么不

std::atomic<int> index;

工作吗?

当前使用的LLVM 3.1具有这些参数

C Language Dialect GNU [-std=gnu99]
C++ Language Dialect [-std=c++11]
C++ Standard Library libc++(LLVM C++ standard library with C++11 support)

要使你的代码正常工作,有几件事必须是正确的:

  1. 您需要#include <atomic>

  2. 您需要将代码编译为c++ 11或c++ 14 (-std=c++11-std=c++14(或旧编译器的c++0x))

  3. 你的编译器和标准库需要支持足够的c++ 11来提供atomic (http://clang.llvm.org/cxx_status.html)

在我的Makefile中添加-std=c++11到CXXFLAGS ->这对我有用!

您需要将其写成如下所示来定义变量。

    std::atomic<std::int> index;