Каковы преимущества VS2008 по сравнению с VS2005 для разработки на C++?

мы рассматриваем возможность перехода с MS Visual Studio 2003 на MS Visual Studio 2005 для нашей разработки на C++. Я думаю, что лучше перескочить на 2008 год.

в чем VS2008 лучше, чем VS2005 для разработки на C++?

есть ли недостатки VS2008 более VS2005?

8 ответов


существует очень мало различий между 2005 и 2008 с точки зрения родного разработчика C++. Однако, если исходить из 2003, имеет смысл перейти непосредственно на 2008 - процесс преобразования должен быть почти таким же, и вы получите немного лучшую платформу. Некоторые новые функции, которые доступны только для 2008 года:

  • /MP опция для многоядерной компиляции (огромная экономия времени, если у вас есть компьютер mutlicore)
  • некоторые улучшения отладки опции для многопоточных приложений

есть также некоторые дополнительные загружаемые пакеты за 2008 год всего:

  • библиотеки TR1
  • новый MFC

честно говоря, что касается чистой разработки на C++, я не думаю, что между ними много, кроме VS2008-это "последняя" версия. Я не заметил никаких существенных изменений.

тем не менее, последняя версия MFC была предоставлена новая аренда жизни с добавлением пакета функций (давая вам внешний вид MSOffice 2007), который может быть стоит знать.


самое большое улучшение в 2008 для нас было в надежности Intellisense на больших решениях. Наш проект имеет несколько миллионов строк кода, и Intellisense был непригоден для использования в 2003 году. В 2008 году он улучшен и работает чаще, чем нет.


для меня самым большим улучшением было просто то, что VS2008 был довольно заметно быстрее.


VS2008 содержит множество исправлений ошибок и, безусловно, стоит обновить IMO. Помимо улучшений пользовательского интерфейса и связанных с ним инструментов, гораздо лучше работать с классами шаблонов, которые не всегда так хорошо работали с компилятором VS2005, если вы не использовали самые основные синтаксисы. Есть также много других областей, которые были улучшены, но я не могу беспокоиться о том, чтобы найти документ MS На данный момент, детализирующий эти изменения. Поэтому поверьте мне, когда я говорю, что их много. :)

Я бы сказал, Если у вас нет какой-то веской причины придерживаться 2005 (т. е. обратной совместимости вашего кода, который не строится правильно с VS2008), вы определенно должны нажать на обновление. К счастью, вы можете работать с несколькими версиями VS на одной рабочей станции. Вам просто нужно установить их sequentiall; т. е. VS2005 сначала, а потом VS2008 потом.

затем вы можете проверить свою кодовую базу под VS2008 и посмотреть, насколько болезненной (если вообще) миграция в VS2008 будет.


Visual Studio 2008-это интегрированная среда, которая позволяет разрабатывать как для Windows CE, так и для Windows. (Ранее нам приходилось работать над eVC++ 4.0, что было не так приятно...)

недостатком, с которым я столкнулся, является то, что последний взнос контейнеров DINKUM STL делает предположение, что используются указатели, а не политика использования allocator::pointer. Это проблема для нас, потому что мы написали наш собственный класс "указатель" для использования общей памяти (хранение памяти смещения вместо абсолютных адресов). Итак, нам пришлось использовать старую библиотеку STL. С другой стороны, отладчик может отображать содержимое контейнера STL гораздо более информативно.


в настоящее время я использую VS 2005. Я попробовал последнюю бета-версию VS 2008, и компилятор последовательно разбился на моих проектах, поэтому я застрял с VS 2005. Я не смотрел версию релиза.

одна большая причина выбрать VS 2008 над VS 2005 заключается в том, что VS 2005 имеет ошибку с intellisense, которая заставляет его использовать слишком много памяти. Обычно это не проблема, но когда я пытаюсь использовать как Visual Assist, так и Refactor! C++ в VS 2005, IntelliSense сбивание приносит мою систему на колени. Это предположительно исправлено в VS 2008. (У меня есть лицензия на VS 2008, и как только мой следующий выпуск продукта, я собираюсь попробовать миграцию, в основном по этой причине.)


Visual C++ 2008 отказались от поддержки однопоточной библиотеки времени выполнения. Хотя я не думаю, что это имеет значение.