Visual Studio 2010 против Visual Studio 2005 для C ++ - PullRequest
3 голосов
/ 17 ноября 2010

Мой отдел пишет смесь кода C ++ для Windows, Linux и кроссплатформенности (RHEL Linx и Windows Server 2003) для внутренних приложений.Мы используем STL и Boost 1.39.

VS2010 теперь доступен в моей организации.Если бы мы перешли на VS2010, мне пришлось бы сделать для этого серьезное экономическое обоснование.Каковы будут некоторые из наиболее заметных преимуществ, которые мы увидим от переезда?Как вы думаете, стоило бы переместить время?

Обновление

Учитывая размер нашей кодовой базы и межплатформенную природу нашего кода, я 'Меня в основном интересует то, что предлагает новая IDE, например, насколько хорош intellisense (скажем, по сравнению с VS для .net).Хорошо ли работает intellisense для очень больших баз кода?На что похожа поддержка рефакторинга?Как сырая производительность IDE?На что похож отладчик, т.е. если я наведу указатель мыши на коллекцию интеллектуальных указателей, то относительно легко увидеть, что находится в коллекции?

Заранее спасибо

Ответы [ 5 ]

3 голосов
/ 17 ноября 2010

Единственная реальная разница в двух компиляторах - это некоторая поддержка C ++ 0x в VS2010. IDE улучшил намного больше, но VS2005 тоже подойдет мне. Теперь они стоят времени, чтобы переехать? До вас ...

3 голосов
/ 17 ноября 2010

Значительно улучшен IntelliSense. C ++ 0x, что означает shared_ptr, unordered_set / map, function, lambdas и т. Д. Это на практике упростит вам задачу, поскольку вам не нужно так много от Boost. Вы также получаете доступ к Parallel Patterns Library (параллельный for_each и т. Д.), Который действительно помогает, если вы ориентируетесь на многоядерные системы. Я бы сказал, пойти на это!

3 голосов
/ 17 ноября 2010

Новые возможности C ++ 0x, например лямбда-выражения, действительно приятно иметь.

2 голосов
/ 18 ноября 2010

Если вас интересуют только улучшения IDE, и вы широко используете умные указатели, я бы посоветовал подождать до SP1 (или некоторого SP, который поставляется с исправлениями для intellisense).

Как отмечали некоторые люди, в C ++ intellisense происходят БОЛЬШИЕ изменения, чтобы поддерживать множество функций, которые другие языки уже имели в течение многих лет. Дело в том, что они случайно нарушили смысл интеллектуальных указателей при создании экземпляра с типом шаблона.

Я опубликовал вопрос с этой проблемой пару недель назад, и по предложению кого-то я отправил эту проблему в Microsoft Connect . К сожалению, команда VC ++ ответила, что это не будет исправлено в ближайшее время.

2 голосов
/ 17 ноября 2010

Поскольку вы используете STL и Boost, производительность может быть довольно большой.VC2010 поддерживает rvalue ссылки и семантику перемещения, что, даже если вы не используете его в своем собственном коде, ускоряет Boost и STL-код значительно .(Хотя я сомневаюсь, что Boost 1.39 часто использует это. Но если в какой-то момент вы обновитесь до последней версии Boost, вы получите преимущество)

Intellisense был переработан в значительной степени в 2010 году.все еще немного неуклюжий, и падает в тот момент, когда видит шаблон, как это всегда будет делать для C ++, но я должен признать, что он работает намного лучше, чем раньше.

...