Проверьте, является ли компилятор Turbo C++

В настоящее время я имею дело с устаревшим кодом, разработанным для Turbo C++. Чтобы обойти Turbo C++ отсутствие bool Тип данных, программа содержит следующую строку кода.

// Necessary when compiling with Turbo C++
enum bool {false, true};

Большинство компиляторов C++ не запускают программу с error: expected identifier before 'bool', Хотя мне бы хотелось перейти на более свежий компилятор, я, к сожалению, должен поддерживать этот обходной путь для обратной совместимости.

Как я могу указать, что эта конкретная строка кода должна компилироваться только в Turbo C++?

1 ответ

Решение

Как предложено Томасом Мэтьюсом и Селби в комментариях:

#ifdef __TURBOC__
    // Only runs if compiler is Turbo C++
    enum bool {false, true};
#endif

Источник: http://beefchunk.com/documentation/lang/c/pre-defined-c/precomp.html

Другие вопросы по тегам