将代码从C ++ 11转换为C ++ 98的策略?

问题描述 投票:0回答:4

我有一个用C ++ 11编写的项目。由于C ++ 11已被广泛接受,因此该项目到目前为止一直有效,直到我必须在不支持C ++ 11的环境中运行它为止。

我已经在项目中的任何地方都使用过std::shared_ptrautostd::intializer_listnullptr enum classchronostd::vector<int> x{1,2,3,4}和许多其他C ++ 11技术。

如何将C ++ 11中的大项目移至C ++ 98?

我很抱歉这是一个愚蠢的问题,谢谢您的时间。

c++ c++11 c++98
4个回答
2
投票

分别决定每件作品。

如果该平台至少可以运行boost的一个子集,则可以仅替换std::chronostd::shared_ptr。您也可以用BOOST_LOCAL_FUNCTION

代替lambda

2
投票

我不得不做类似的事情,但是我的挑战是将其从C ++ 17共同转换为客户CentOS 7上存在的C(他们使用了自定义的CentOS映像,并且我们不允许安装任何新的软件包)。] >

我所做的就是逐步淘汰所有使用C ++元素的依赖项,并用C变体替换它们。花费了一些时间,但还是有效。还照顾了其他解决方案,但我找不到任何解决方案。

您总是可以用C重写共享的指针,向量等。


1
投票

也许不完全是您的要求,但是当我想在不支持C ++ 11的另一台计算机上运行代码时,我将在此计算机内使用C ++ 11创建docker。希望这会有所帮助!


1
投票

一种解决方案是尝试查找C ++外部库,例如Boost和Qt,它们可以满足您的一半要求。

© www.soinside.com 2019 - 2024. All rights reserved.