You can run g++ -std=c++0xC ++ 0x implementations for greater compatibility.
From the manual:
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.
As a silly example of this in action:
$ 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 ++ 0x .