2010-11-17 216 views
3

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

VS2010现已在我的组织中提供。如果我们迁移到VS2010,那么我必须为它做一个重要的商业案例。这一举措会给我们带来哪些最显着的好处?你认为这会花费时间成本吗?

更新

考虑到我们的代码库的大小和我们代码的跨平台特性,我主要感兴趣的是新的IDE优惠,例如intellisense有多好(比如,与.net相比VS)。 intellisense是否适用于非常大的代码库?什么是重构支持?原始IDE性能如何?什么是调试器,就是说,如果我将鼠标悬停在指向一组智能指针的指针上,相对容易看到集合中的内容?

在此先感谢

+1

确保您的开发人员框可以处理VS2010。我们注意到新IDE的性能成本明显降低,尤其是在加载大型项目时! – 2010-11-17 10:38:11

+1

如果开发人员不能做到,那听起来像是一个更重要的业务案例,可能需要一次升级才能完成。 – 2010-11-17 10:41:39

回答

2

如果您只对IDE的改进感兴趣,并且大量使用智能指针,我会建议等待SP1(或者带有修复intellisense的SP)。

正如有些人指出的那样,C++ intellisense有很大的变化,以支持其他语言多年以来的许多功能。事情是,他们在使用模板类型实例化时意外地破坏了智能指针的智能感知。

我已经posted a question与几周前的问题,并有人建议我发送问题Microsoft Connect。令人遗憾的是,VC++团队的回应是,它很快就不会被修复。

3

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

+3

+1,我也喜欢在#include上自动完成,并且像C#中的错误一样强调错误。 – 2010-11-17 10:21:42

3

这两个编译器唯一真正的区别是VS2010中的一些C++ 0x支持。 IDE 改进了很多,但VS2005也适合我。现在这些值得花费时间成本吗?由你...

3

大大提高了智能感知。 C++ 0x,这意味着shared_ptr,unordered_set/map,function,lambda等等。这实际上会为你简化一些事情,因为你不需要从Boost那里得到很多东西。您还可以访问Parallel Patterns Library(并行for_each等),如果您的目标是多核,那么这真的很有帮助。我会说去吧!

+0

谢谢。改变的第一阶段只是IDE。我们拥有如此庞大的代码库,因此我们不太可能迁移到C++ 0x,所以更多的是我感兴趣的IDE改进,尤其是性能,intellisense等。 – ng5000 2010-11-17 11:15:51

+0

@ ng5000:您不必明确使用C++ 0x从中受益。您的库(如STL或Boost)可能已经使用新的语义来加快其调用。无论如何,你可能会想要测量它。 – liori 2010-11-17 12:56:23

2

既然你使用STL和Boost,性能可能是一个相当大的交易。 VC2010支持右值引用和移动语义,即使你没有在自己的代码中使用它,也可以显着加快升压和STL代码。 (尽管我怀疑Boost 1.39会利用这一点,但是如果在某些时候升级到Boost的最新版本,你会得到好处)

Intellisense在2010年被重新设计,它仍然是一个有点不可思议,并且在看到一个模板的那一刻就落下了,因为它总是会用于C++,但我必须承认它比以前更好。