gpt4 book ai didi

c++ - 您应该将项目迁移到 C++11 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:26 27 4
gpt4 key购买 nike

我一直在努力让我们的团队将一个大型 C++ 项目从 VS2008 迁移到 VS2012。我想这样做主要是因为我想开始使用 C++11 并且 IDE 更好。所以我的理由有些自私。

我的团队领导反对,因为他没有看到迁移的商业案例,理由是我们将通过 BOOST 和其他库获得的大多数性能改进功能将通过 C++11 获得。他还表示,这将需要更改我们所有平台上的运行时,这可能会改变某些行为。这意味着我们需要在已部署到的所有服务器上重新测试。

第一个论点我有点理解,虽然我相信 C++11 代码会比使用 BOOST 更干净(同样不是一个很好的商业案例)。

关于使用不同运行时的争论我不明白。 native C++ 应用程序使用哪些运行时?这不是 VC++。他担心的只是 STL 不会是完全相同的实现吗?

我不明白会有什么问题。有什么我想念的吗?我应该引用任何其他好的迁移论据来帮助我的案子吗?

最佳答案

  • 所有第 3 方库都需要使用新的编译器构建
  • 代码目前可能不知不觉地依赖于未定义的行为,新的编译器可能会为 UB 做一些与当前的完全不同的事情(并导致问题)

性能不会有太大变化,因为您不会使用 C++11 风格进行编码(基本上,很多东西都是按值传递的,而以前不会这样)。如果您的代码库有很多...

std::vector<Blah> func(std::vector<Asdf> v); // notice all the pass by value

... C++11 可能会带来很大的性能改进。但在 C++98/03 中你不会那样做。

您需要降低团队领导的进入阈值。自己进行迁移并对您的产品进行冒烟测试。然后给他看。之后,这里是升级的抽象原因:

  • C++11 风格代码更少,更简单
  • VS2012 添加了 C++11 标准库 - 您可以停止手动滚动 50 个错误缠身的替换
  • 程序员希望使用现代 语言和现代 工具工作。这将在公司范围内激发学习和最佳实践的复兴,从而 boost 代码质量、员工保留率、员工继续教育等
  • 何时进行此类升级是一个微妙的平衡。如果你经常这样做,你就是在花钱而没有获得任何商业优势。如果你不经常这样做,你就会处理太多遗留技术和遗留代码,以至于维护可能成为一场噩梦。当一个重大的语言变化出现时,你最终会转向,最好早点做(顺便说一句,这不是特别很快) - 否则你只是不断积累以后会发生的事情被认为是遗留代码。为新工具迁移到新编译器通常是不值得的。进行重要语言升级通常是值得的。

我无法判断其中是否对您的团队领导有吸引力。祝你好运

关于c++ - 您应该将项目迁移到 C++11 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435614/

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