【问题标题】:Visual Studio 2010 vs Visual Studio 2005 for C++Visual Studio 2010 与 Visual Studio 2005 for C++
【发布时间】:2010-11-17 10:13:22
【问题描述】:

我的部门为内部应用程序编写了 Windows、Linux 和跨平台(RHEL Linx 和 Windows Server 2003)C++ 代码的混合体。我们使用 STL 和 Boost 1.39。

VS2010 现在可以在我的组织中使用。如果我们要迁移到 VS2010,我必须为其制定重要的商业案例。我们将从此举中看到哪些最显着的好处?你认为花时间搬家值得吗?

更新

鉴于我们代码库的规模和代码的跨平台性质,我主要对新 IDE 提供的功能感兴趣,例如智能感知有多好(例如,与 .net 的 VS 相比)。智能感知是否适用于非常大的代码库?重构支持是什么样的?原始 IDE 性能如何?调试器是什么样的,即如果我将鼠标悬停在指向智能指针集合的指针上,是否相对容易看到集合中的内容?

提前致谢

【问题讨论】:

  • 确保你的开发者盒子可以处理 VS2010。我们注意到新 IDE 显着降低了性能成本,尤其是在加载大型项目时!
  • 如果开发人员无法做到这一点,这听起来像是一个更重要的业务案例,需要制定,也许需要一次升级。

标签: c++ visual-studio-2010 ide visual-studio-2005


【解决方案1】:

新的 C++ 0x 功能,例如lambda 表达式真的很棒。

【讨论】:

  • +1,我也喜欢 #include 的自动完成功能和错误的下划线,就像我们多年来在 C# 中遇到的那样。
【解决方案2】:

这两个编译器的唯一真正区别是 VS2010 中的一些 C++0x 支持。 IDE 改进了很多,但 VS2005 对我来说也很好。现在这些值得花时间搬家吗?由你决定...

【讨论】:

    【解决方案3】:

    大大改进了 IntelliSense。 C++0x,这意味着 shared_ptr、unordered_set/map、function、lambdas 等。这实际上会为您简化事情,因为您不需要 Boost 那么多。您还可以访问 Parallel Patterns Library(并行 for_each 等),如果您的目标是多核,这真的很有帮助。我会说去吧!

    【讨论】:

    • 谢谢。更改的第一阶段只是 IDE。我们拥有如此庞大的代码库,不太可能迁移到 C++0x,所以我更感兴趣的是 IDE 改进,特别是性能、智能感知等
    • @ng5000:您不必显式使用 C++0x 即可从中受益。您的库(如 STL 或 Boost)可能已经使用新语义来加快调用速度。无论如何,你可能想要测量它。
    【解决方案4】:

    如果您只对 IDE 改进感兴趣,并且大量使用智能指针,我建议您等到 SP1(或一些附带智能感知修复的 SP)。

    正如一些人指出的那样,C++ 智能感知发生了很大的变化,以支持其他语言多年来已经拥有的许多功能。问题是他们在使用模板类型实例化时不小心破坏了智能指针的智能感知。

    几周前我已经posted a question 处理了这个问题,并且按照某人的建议,我将问题发送到了Microsoft Connect。遗憾的是 VC++ 团队的回应是,它不会很快修复。

    【讨论】:

      【解决方案5】:

      由于您使用 STL 和 Boost,因此性能可能非常重要。 VC2010 支持右值引用和移动语义,即使您不在自己的代码中使用它,也可以显着加速 Boost 和 STL 代码。 (虽然我怀疑 Boost 1.39 会大量利用这一点。但如果您在某个时候升级到最新版本的 Boost,您将获得好处)

      Intellisense 在 2010 年进行了重大改造。它仍然有点不稳定,并且在它看到模板的那一刻就会崩溃,就像它在 C++ 中总是一样,但我不得不承认它的效果比它使用的要好得多到。

      【讨论】:

        猜你喜欢
        • 2010-11-12
        • 1970-01-01
        • 2014-05-09
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多