【发布时间】:2016-11-12 19:40:21
【问题描述】:
我目前正在处理为Turbo C++ 设计的遗留代码。为了解决 Turbo C++ 缺少 bool 数据类型的问题,该程序包含以下代码行。
// Necessary when compiling with Turbo C++
enum bool {false, true};
大多数 C++ 编译器无法运行带有error: expected identifier before 'bool' 的程序。虽然我很想切换到更新的编译器,但不幸的是,我需要维护这种解决方法以实现向后兼容性。
我怎样才能表明这行代码只能在 Turbo C++ 中编译?
【问题讨论】:
-
查找预定义宏,例如
__TURBOC__。当 Borland C++ 出现时,我摆脱了 Turbo C++,然后在 2008 年左右放弃了它。你应该使用更新和免费的东西。 -
你可能想要
__TURBOC__,这里建议:beefchunk.com/documentation/lang/c/pre-defined-c/precomp.html -
只是好奇,谁还在使用 Turbo C/C++?嵌入式设备?仍在运行 DOS 的旧设备?
-
大多数嵌入式设备使用其他专业编译器:Keil、Greenhills、IAR、Microsoft、ARM、Intel 和 Gnu。 TurboC++ 不支持嵌入式系统中使用的 ARM Cortex 等现代处理器。
-
@BasileStarynkevitch 我拒绝使用 Turbo C++ 是我需要这项检查的原因。它让我在使用任何现代编译器时都可以忽略教授的 hacky-workaround。
标签: c++ turbo-c++ predefined-macro