检查编译器是否为 Turbo C++

Ste*_*ica 4 c++ turbo-c++ predefined-macro

我目前正在处理为Turbo C++设计的遗留代码。为了解决 Turbo C++ 缺乏bool数据类型的问题,该程序包含以下代码行。

// Necessary when compiling with Turbo C++
enum bool {false, true};
Run Code Online (Sandbox Code Playgroud)

大多数 C++ 编译器无法运行带有error: expected identifier before 'bool'. 虽然我很想切换到更新的编译器,但不幸的是,我需要维护此解决方法以实现向后兼容性。

我如何指示该特定代码行只能在 Turbo C++ 中编译?

Ste*_*ica 5

正如Thomas MatthewsSelbie在评论中所建议的:

#ifdef __TURBOC__
    // Only runs if compiler is Turbo C++
    enum bool {false, true};
#endif
Run Code Online (Sandbox Code Playgroud)

来源:http ://beefchunk.com/documentation/lang/c/pre-define-c/precomp.html