How do I detect compiler and OS with predefined macros?

To detect the compiler and operating system in C++, you can use predefined macros that provide information about the environment in which the code is being compiled. Below are some common predefined macros that help identify the compiler and OS.


#ifdef _MSC_VER
    // Code for Microsoft Visual C++
#elif defined(__GNUC__)
    // Code for GCC
#elif defined(__clang__)
    // Code for Clang
#endif

#ifdef _WIN32
    // Code for Windows
#elif defined(__APPLE__)
    // Code for macOS
#elif defined(__linux__)
    // Code for Linux
#endif
    

C++ compiler detection predefined macros Microsoft Visual C++ GCC Clang operating system detection Windows macOS Linux