On Sun, 18 Jan 2015, John Maddock wrote:
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?
4.6.4 has <chrono> for me (even 4.4.7 has it), so I guess you should check another header instead (sorry, I don't have 4.5 so I can't easily suggest one). -- Marc Glisse