A useful resource on how to detect compilation environment based on predefined macros : * last available version on the //Wayback Machine//: https://web.archive.org/web/20191011040139/http://nadeausoftware.com/articles/2011/12/c_c_tip_how_list_compiler_predefined_macros; * original URL: http://nadeausoftware.com/articles/2011/12/c_c_tip_how_list_compiler_predefined_macros. Other ressource : https://sourceforge.net/p/predef/wiki/Compilers/. To list predefined preprocessor macros, ''echo | g++ -dM -E - | more'' can be used (''g++'' can be replaced by other //g(cc|%%++%%)//-like compiler. For //emscripten// (based on //LLVM//), the above command (''echo | em++ ...'') displays macros which are stripped out. The ''%%__%%x86_64%%__%%'' macro, for example. * [[./MinGW/]], * [[./MSVC/|Visual C++]], * [[./CLang/]], * [[./Codeblocks/|Code::Blocks]].