我有一个用C ++ 11编写的项目。由于C ++ 11已被广泛接受,因此该项目到目前为止一直有效,直到我必须在不支持C ++ 11的环境中运行它为止。
我已经在项目中的任何地方都使用过std::shared_ptr
,auto
,std::intializer_list
,nullptr
enum class
,chrono
,std::vector<int> x{1,2,3,4}
和许多其他C ++ 11技术。
如何将C ++ 11中的大项目移至C ++ 98?
我很抱歉这是一个愚蠢的问题,谢谢您的时间。
分别决定每件作品。
如果该平台至少可以运行boost
的一个子集,则可以仅替换std::chrono
和std::shared_ptr
。您也可以用BOOST_LOCAL_FUNCTION
我不得不做类似的事情,但是我的挑战是将其从C ++ 17共同转换为客户CentOS 7上存在的C(他们使用了自定义的CentOS映像,并且我们不允许安装任何新的软件包)。] >
我所做的就是逐步淘汰所有使用C ++元素的依赖项,并用C变体替换它们。花费了一些时间,但还是有效。还照顾了其他解决方案,但我找不到任何解决方案。
您总是可以用C重写共享的指针,向量等。
也许不完全是您的要求,但是当我想在不支持C ++ 11的另一台计算机上运行代码时,我将在此计算机内使用C ++ 11创建docker。希望这会有所帮助!
一种解决方案是尝试查找C ++外部库,例如Boost和Qt,它们可以满足您的一半要求。