Avoir d'erreur 'char16_t et char32_t non déclaré'

Je suis en train d'élaborer un programme en C++ sous Linux. La version de gcc est 4.5.1 20100924. Je veux utiliser std::atomic_int dans mon programme. J'ai inclus atomique en-tête comme ci-dessous:

include <atomic>

Quand je compile le programme, j'obtiens ci-dessous les erreurs:

In file included from /usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomic_base.h:87:0,
from /usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/atomic:41,
from ../Source/Main.h:33:
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomicfwd_cxx.h:107:25: error: char16_t was not declared in this scope
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomicfwd_cxx.h:107:33: error: template argument 1 is invalid
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomicfwd_cxx.h:107:53: error: invalid type in declaration before ‘;’ token
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomicfwd_cxx.h:110:25: error: char32_t was not declared in this scope
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomicfwd_cxx.h:110:33: error: template argument 1 is invalid
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/atomicfwd_cxx.h:110:53: error: invalid type in declaration before ‘;’ token

Si je comprend <cstdint>, j'obtiens les mêmes erreurs. Les en-têtes de char.h et cuchar.h n'y sont pas sur mon système. Comment puis-je résoudre les erreurs de compilation?

Vous en remercie d'avance.

Êtes-vous en passant l'option -std=c++0x?
cuchar.h n'est pas un en-tête, juste cuchar. De toute façon, charXX_t sont "intégrés" types, n'est pas nécessaire.
En passant -std=c++0x pour g++ résolu le problème. Merci beaucoup.
Je suggère également de mettre à niveau le compilateur; version actuelle de la GCC 4.7, et de 4,6 paru en mars 2011; puisque vous voulez C++2011 fonctionnalités, il est préférable de mettre à niveau.

OriginalL'auteur geekowl | 2012-07-31