Mon compilateur système (gcc42) fonctionne très bien avec les fonctionnalités TR1 que je veux, mais en essayant de soutenir à nouveau compilateur versions autres que les systèmes, en essayant d'accéder à TR1-têtes de une #erreur en exigeant la -std=c++0x option, car de la façon dont il interagit avec bibliothèque ou un hub bub comme ça.
/usr/local/lib/gcc45/include/c++/bits/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.
Avoir à fournir un interrupteur supplémentaire n'est pas un problème, à l'appui de GCC 4.4 et 4.5 en vertu de ce système (FreeBSD), mais, évidemment, ça change de la photo!
L'utilisation de mon système compilateur g++ 4.2 défaut dialecte):
#include <tr1/foo>
using std::tr1::foo;
Utilisant les nouvelles (4.5) versions du compilateur avec -std=c++0x:
#include <foo>
using std::foo;
Est-il de toute façon à l'aide de la pré-processeur, que je ne peux dire si g++ est en cours d'exécution avec le C++0x fonctionnalités permis?
Quelque chose comme ceci est ce que je suis à la recherche de:
#ifdef __CXX0X_MODE__
#endif
mais je n'ai rien trouvé dans le manuel ou sur le web.
À ce rythme, je commence à penser que la vie serait plus facile, pour utiliser Boost comme une dépendance, et ne pas s'inquiéter d'une nouvelle langue standard d'arriver avant TR4... hehe.