Определите тип ОС/компилятор с помощью элегантного кода C/C++ (особенно gcc/g++)C++

Программы на C++. Форум разработчиков
Anonymous
Определите тип ОС/компилятор с помощью элегантного кода C/C++ (особенно gcc/g++)

Сообщение Anonymous »

Я знаю, что могу определить тип компилятора (например, gcc: http://sourceforge.net/p/predef/wiki/Compilers/). А как насчет g++? Могу ли я использовать макрос __GNUC__ также для тестирования, если я использую g++?

Еще вопрос по типу ОС. Я знаю, я могу это сделать:

Код: Выделить всё

#if defined(__linux__)
/* Linux. --------------------------------------------------- */

#endif
Но как сделать это элегантным решением? Сделать это первой функцией в main? Я имею в виду:

Код: Выделить всё

#include 

int compiler()
{
#if defined (__GNUC__)
return 0;
#elif defined (_MSC_VER)
return 1;
#else
return -1;
#endif;
}

int os()
{
#if defined(_WIN32) || defined(_WIN64)
return 0;
#elif defined(__linux__)
return 1;
#else
return -1;
#endif
}

int main(int argc, char **argv)
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/17208967/detect-os-type-compiler-with-elegant-c-c-code-especially-gcc-g[/url]

Вернуться в «C++»