2013-03-30 9 views
7

Dlaczego nieBrak typu o nazwie 'atomowy' w przestrzeni nazw 'std'

std::atomic<int> index; 

pracy?

Obecnie za pomocą LLVM 3.1 z tych 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

Czy umieściłeś '# include'd w nagłówku' '? –

+0

@AndyProwl #error nie jest zaimplementowany Domyślam się, że to jest – Hobbyist

+0

Dźwięk prawdopodobnie. Przy okazji, dobrym zwyczajem jest dostarczanie również komunikatu o błędzie, który otrzymujesz (jeśli go otrzymałeś). "Nie działa" może oznaczać cokolwiek. –

Odpowiedz

2

Istnieje kilka rzeczy, które muszą być prawdziwe dla kodu do pracy:

  1. Trzeba #include <atomic>

  2. You trzeba skompilować kod jako C++ 11 lub C++ 14 (-std=c++11 lub -std=c++14 (lub c++0x dla starszych kompilatory))

  3. Twój kompilator i biblioteki standardowej musi obsługiwać tyle C++ 11, aby zapewnić atomic (http://clang.llvm.org/cxx_status.html)

-2

Musisz napisać go jako następujące do określonej zmiennej.

std::atomic<std::int> index; 
Powiązane problemy