2010-11-17 217 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++,但我必須承認它比以前更好。