2013-03-30 5 views
7

Tại sao khôngKhông loại tên là 'nguyên tử' trong không gian tên 'std'

std::atomic<int> index; 

việc?

Hiện đang sử dụng LLVM 3.1 với những params

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

Bạn có '# include'd tiêu đề' 'không? –

+0

@AndyProwl #error không được triển khai Tôi đoán đó là – Hobbyist

+0

Có khả năng là âm thanh. Btw, nó là một thói quen tốt để cung cấp cũng là thông báo lỗi bạn nhận được (nếu bạn nhận được bất kỳ). "Không hoạt động" có thể có nghĩa là bất cứ điều gì. –

Trả lời

2

Có một số điều mà cần phải đúng với mã của bạn để làm việc:

  1. Bạn cần phải #include <atomic>

  2. Bạn cần biên dịch mã như C++ 11 hoặc C++ 14 (-std=c++11 hoặc -std=c++14 (hoặc c++0x cho cũ hơn trình biên dịch))

  3. trình biên dịch của bạn và thư viện chuẩn cần hỗ trợ đủ của C++ 11 để cung cấp atomic (http://clang.llvm.org/cxx_status.html)

-2

Bạn cần phải viết nó như sau để biến xác định.

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