【发布时间】:2020-04-16 09:42:26
【问题描述】:
我有一个用 C++11 编写的项目。由于 C++11 被广泛接受,该项目到目前为止运行良好,直到我不得不在不支持 C++11 的环境中运行它。
我已经在项目中到处使用std::shared_ptr、auto、std::intializer_list、nullptrenum class、chrono、std::vector<int> x{1,2,3,4} 和许多其他 C++11 技术。
如何将 C++11 中的大项目迁移到 C++98?
如果这是一个愚蠢的问题,我深表歉意,感谢您的宝贵时间。
【问题讨论】:
-
不太可能有任何工具可以做到这一点。大量的手工工作摆在您面前。
-
许多这些库由 Boost for C++98 提供。
-
安装一个更新的编译器,或者如果不可能,就拒绝处理这个环境。为什么要在注定要进入回收站的东西上浪费大量精力?我知道这种解决方案并不适合所有人,但这是几种有效策略之一。
-
“必须运行”是指必须在 c++98 编译器上开发它吗?只是为了检查编译器和运行时库之间是否存在混淆。如果您需要将其移植回来以获得 c++98 的好运,可能会很困难。我宁愿尝试使用编译器反向端口或在 docker 内编译...
-
我正在编写高性能计算应用程序的代码,我希望项目在神威太湖之光超级计算机(世界Top3计算机)上运行。不过目前还不支持C++11,管理员说不知道平台什么时候支持C++11。为了使用计算机,我必须将代码转换为 C++98。看来我必须做很多手工工作。谢谢大家的建议~@All