Вы можете запустить g++ -std=c++0x
для большей совместимости с реализацией C ++ 0x.
Из руководства:
c++0x
The working draft of the upcoming ISO C++0x standard. This option enables experimental features that are
likely to be included in C++0x. The working draft is constantly changing, and any feature that is enabled
by this flag may be removed from future versions of GCC if it is not part of the C++0x standard.
Как глупый маленький пример этого в действии:
$ cat a.cpp
const int FOO_VERSION = 2;
int main() {
static_assert(FOO_VERSION >= 3, "Your version of Foo doesn't contain the necessary bugfixes to run this program correctly.");
return 0;
}
$ g++ -std=c++0x a.cpp
a.cpp:1:17: error: stdio: No such file or directory
a.cpp: In function ‘int main()’:
a.cpp:6: error: static assertion failed: "Your version of Foo doesn\'t contain the necessary bugfixes to run this program correctly."
Кроме того, как упомянул @GMan в комментарии, список GCC совместимости C ++ 0x можно найти в Интернете.