【发布时间】:2018-02-22 20:58:41
【问题描述】:
我有一个使用 -std=gnu++98 的相对维护良好、相当大的代码库。将语言标准从gnu++98升级到gnu++11有什么好处?
如果有优势,只需从 -std=gnu++98 更改为 -std=gnu++11 就足够了吗?是否有其他选项应该伴随此更改(考虑 -pendantic -pedantic-errors 如何伴随 -std=c89 或 C 的 -ansi)
【问题讨论】:
-
c++11 引入了移动语义和右值引用。这是一个巨大的变化。
-
这是一个非常具体的问题,应该重新打开。
-
@NemanjaTrifunovic - 过于宽泛,重新表述问题:C++ 从 C++98 到 C++11 再到 C++17 发生了什么变化 - 你可以写一本书。
-
@CherryVanc:既过于宽泛(有大量优势,但并非所有优势都与每个项目相关)和基于意见(给定更改的重要性将很大程度上取决于意见)基于)。就个人而言,我发现 C++ 在编写 pre-C++11 之前是一个令人讨厌的过程,并且由于类型推导、函数式编程工具等方面的改进,在 C++11 之后好多更好,但是很难说给定的现有代码库会得到改进; STL 容器上的 r 值引用和移动语义可能会提高您的速度,但除此之外,它更容易编程,这就是诱惑。
标签: c++ c++11 gcc compiler-optimization c++98