По крайней мере, некоторые из очевидных кандидатов:
VC++: По состоянию на VC++ 2010 начинает поддерживать некоторые функции 11 C++. VC++ 11 (в настоящее время в бета-тестировании) добавляет еще несколько. Имеет довольно приличное генерирование кода, отладчик, о котором многие думают, это лучшее, что вы можете получить, и IDE, которая производит довольно смешанные обзоры. Многие из тех, кто использовал их, считают, что старые поколения IDE (VC++ 5 и 6) лучше, по крайней мере, некоторым образом, но с тех пор компилятор так сильно улучшился, что более старые IDE действительно не подходят большинству людей (за исключением поддержки древнего кода).
MinGW: текущий пакет STL имеет gcc 4.7.0, который (по крайней мере, возможно) имеет несколько лучшую поддержку C++ 11, чем VC++. Он включает в себя довольно много портированных инструментов Unix/Linux, но в основном это среда с командной строкой. Если вы хотите что-то вроде IDE, вам придется установить/настроить его отдельно.
Cygwin: Это также основано на gcc, но вместо того, чтобы портировать компилятор в Windows, они портировали Linux на Windows и запускали компилятор на портированном Linux. Очевидно, я преувеличиваю (немного), но не очень много - Cygwin в основном запускает код Linux/Unix для Windows с минимальными изменениями. Инструменты, которые они поставляют, также подходят для этого - он делает все возможное, чтобы быть Unix-подобной средой, которая работает под ядром Windows. Это определенно не было бы моим первым выбором для любой новой разработки.
Qt Creator/SDK: это еще одна упаковка gcc, но с IDE. Если вы хотите написать код с помощью Qt, это может быть ваш первый выбор. В противном случае я бы , вероятно, избежал его - хотя он, вероятно, может работать нормально, он написан, предполагая, что Qt используется по умолчанию.
Eclipse/CDT: Вы можете найти это, упакованное вместе с копией g ++. По крайней мере, в прошлый раз, когда я пробовал, мне нужно было немного поработать над конфигурацией, прежде чем я мог даже заставить ее правильно компилировать. Если вы используете Eclipse для других целей, получение C++ возможно стоит. В противном случае я лично его избегу.
C++ Builder: В дни Borland это был самый большой претендент на доминирование Microsoft. Кажется, Эмбаркадеро пытается снова вернуть его в мейнстрим. Акцент здесь кажется, чтобы быть намного больше на IDE, GUI toolkit и т. Д., Чем собственно компилятор. Сам компилятор кажется немного отстающим от gcc и/или VC++. Стоимость стартера стоит 150 долларов США и ограничивает объем продаж продукции до 1000 долларов, после чего вам нужно потратить большую часть ваших 1000 долларов на обновление до версии Professional.
Clang: Самый недавно начатый из главных компиляторов, но действительно работающий, будучи одним из лучших. Имеет некоторые из лучших диагностических возможностей любого компилятора. Цели LLVM, которые дают ему множество инструментов для анализа во время выполнения и т. Д. Его главный корпоративный спонсор - Apple, хотя, хотя, несмотря на то, что он хорошо работает из коробки на OS/X (и теперь является компилятором по умолчанию) в Windows, вы уже являетесь лотом. AFAIK, вы нужно, чтобы какой-то другой компилятор был установлен и работал (и действительно знал, как его использовать), чтобы установить его вообще. В Windows это немного похоже на покупку мышечной машины из мусорного двора. С достаточной работой вы можете оказаться в крутейшем автомобиле в городе, но в Windows это скорее проект, чем инструмент.
Несколько больше вообще избегать:
- Любая версия VC++, прежде чем о 2008 Simply уступает реализации C++.
- Любая версия g ++ перед 4.x. Опять же, более низкая реализация C++.
- djgpp: в значительной степени самое худшее. Это действительно нацелено на MS-DOS с (обычным) расширителем DOS. Древняя версия gcc завершает ужас.
- OpenWatcom: также в первую очередь предназначен для MS-DOS. Он использует расширитель DOS, который лучше, чем djgpp, но это в значительной степени проклятие с слабой похвалой. Компилятор на самом деле даже не очень близок к совместимости с C++ 98; Обновления на C++ 11 поражают меня, так как вряд ли скоро придут (если когда-либо).
- Цифровой Марс: Уолтер Брайт теперь работает в основном на своем собственном языке D. Хотя компилятор C++ по-прежнему доступен, компиляция C++ довольно устарела.
Резюме: если вы хотите IDE, VC++ Express - это четкий выбор. Если вы заботитесь о последних возможностях C++ 11 и не против работать в командной строке, MinGW, вероятно, является лучшим выбором. У других определенно есть ниши, но я считаю, что большинство из них уступает, если ваша цель в первую очередь заключается в новом, писать переносимый C++.
Что такое версия VC++ связана с версией .NET Framework, если вы пишете собственный код? – ildjarn
Вы можете написать стандартный C или C++ с визуальной студией, цель вашего проекта не должна быть платформой .NET. –
VC++ 2010 будет в порядке. Когда вы пишете C++, вы вообще не используете .NET (любая версия). –