Up vote 6 down vote favorite share g+ share fb share tw.
(I was quite puzzled to find out that icc defines __GNUC__ -- and even __GNUC_MINOR__ and __GNUC_PATCHLEVEL__! Why? ) c++ c gcc icc predefined-macro link|improve this question edited Apr 20 '11 at 21:39osgx13.1k32081 asked Apr 20 '11 at 21:21Znorg353.
2 Clang also defines these, they are for compatibility purposes: you can just replace the gcc command with icc, with the exact same options, without anything breaking (or that's the idea). – rubenvb Apr 20 '11 at 21:31.
We use #ifdef __INTEL_COMPILER to split icc off, assuming gcc as a default.
3 Handy link time: predef.sourceforge.net/precomp.html – Cat Plus Plus Apr 20 '11 at 21:25.
I believe you could check for __INTEL_COMPILER according to this.
The reason ICC defines __GNUC__ etc. is because of code like yours that is inspecting compiler-specific macros and expects to see them...
Traditionally, compilers have defined a symbol of their own as well as their version as preprocessor symbols so that the code could be adapted (generally to work around bugs or specificities). CLang has introduced a mechanism I had not seen so far, under the form of the __has_feature query. It does not replace the "work around bugs" practices (which is why CLang still exposes specific symbols) but allows a more natural style for querying the compiler capacities.
I don't know if other compilers plan on defining such a facility.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.