gpt4 book ai didi

c++ - 将 c++98 代码升级到 c++11

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:16 25 4
gpt4 key购买 nike

我继承了一个庞大的 c++ 代码库,终于可以在 64 位 Red Hat 7(gcc 版本 4.8.5 20150623)上编译和运行它。

默认情况下,项目中的 makefile 是为 c++98 编译的。我想打开 c++11,因为它显然提供了许多语言优势。 g++ 4.8 有 rather complete support对于 C++11。

我的问题是:这会带来什么样的风险?我需要注意什么?什么类型的东西可能会破坏(除了不能编译的东西)?

我的 google-foo 在这方面的评分很低,因为我已经搜索过了,但没能找到任何类型的分析。 (也许是因为他们真的没有任何风险,我只是不知道。)

最佳答案

只需打开 -std=c++11 并且没有其他风险应该相当低。由于突然在以前无法执行的位置执行移动,您可能会看到一些小的速度改进,但我怀疑您会遇到任何问题(除非代码包含未定义的行为并且 gcc 在 C++11 模式下更积极地利用它- 我不知道是否如此)。

关于代码现代化,您可能需要查看 clang tidy/clang modernize。但是一旦你开始真正主动地用新的现代 C++11 版本替换旧的工作代码,这就是你需要非常小心的地方,确保你做对了,并完全理解你正在替换的代码和新的代码您用来替换它的功能。

http://clang.llvm.org/extra/clang-tidy/index.html

尤其是“modernize-*”检查:http://clang.llvm.org/extra/clang-tidy/checks/list.html

关于c++ - 将 c++98 代码升级到 c++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com