Results are as follows for clang 3.5
gcc version gcc reports clang reports 4.6.3 40603 40700 4.8.2 40802 40800 4.9.0 40900 40900 4.9.2 40902 40900 5.0.0 50000 40700
I can see that there are some serious problems getting the correct identification with Clang.
Looks like unless it recognizes 4.8 or 4.9, it reports 40700 by default, which would make things a bit complicated.
No it checks for C++11 headers introduced with specific GCC versions -
if the header is found (via clang __has_include) then the compiler
version is assumed to be later than the GCC version that first
introduced that header.
So... 4.6.3 reporting 4.7 implies that <chrono> is present?
And 5.0 reporting 4.7 implies that none of