Al menos algunos de los candidatos obvios:
VC++: A partir de VC++ 2010 está empezando a apoyar algunas características de C++ 11. VC++ 11 (actualmente en prueba beta) agrega algunos más. Tiene una generación de código bastante decente, un depurador que algunas personas creen que es lo mejor que se puede obtener, y un IDE que produce críticas más bien mixtas. Muchos de los que los han usado consideran que las generaciones anteriores del IDE (VC++ 5 y 6) son mejores, al menos de alguna manera, pero el compilador ha mejorado tanto desde entonces que los IDE antiguos realmente no son una opción para la mayoría de las personas (excepto para apoyar el código antiguo).
MinGW: el paquete actual de STL presenta gcc 4.7.0, que (al menos discutiblemente) tiene algo mejor compatibilidad con C++ 11 que VC++. Incluye bastantes herramientas Unix/Linux portadas, pero es básicamente un entorno de solo línea de comando. Si quieres algo como un IDE, tendrás que instalarlo/configurarlo por separado.
Cygwin: Esto también se basa en gcc, pero en lugar de portar el compilador a Windows, transfieren Linux a Windows y ejecutan el compilador en el Linux portado. Obviamente estoy exagerando (un poco) pero no mucho. Cygwin es principalmente para ejecutar el código de Linux/Unix en Windows con el menor número de modificaciones posible. Las herramientas que envían se adaptan también a eso: hace todo lo posible para ser un entorno tipo Unix que se ejecuta bajo el kernel de Windows. Definitivamente no sería mi primera opción para ningún nuevo desarrollo.
Qt Creator/SDK: este es otro paquete de gcc, pero con un IDE. Si desea escribir código usando Qt, podría ser su primera opción. De lo contrario, me gustaría probablemente evitarlo - si bien puede funcionar bien, de lo contrario, se escribe suponiendo que Qt es el valor predeterminado.
Eclipse/CDT: Puede encontrar este paquete con una copia de g ++ también. Al menos la última vez que lo intenté, necesitaba bastante trabajo en la configuración antes de que pudiera hacer que compilara correctamente. Si usa Eclipse para otros fines, hacer que funcione C++ probablemente valga la pena. De lo contrario, yo personalmente lo evitaría.
C++ Builder: En los días de Borland, este era el mayor desafío al dominio de Microsoft. Embarcadero parece estar tratando de volver a ponerlo en la corriente principal. El énfasis aquí parece ser mucho más en el IDE, GUI toolkit, etc., que el compilador propiamente dicho. El propio compilador parece estar algo detrás de gcc y/o VC++. La edición inicial cuesta $ 150 y limita las ventas de productos a $ 1000, punto en el que necesita gastar la mayor parte de sus $ 1000 en una actualización a la edición Professional.
Clang: El más reciente comenzó de los principales compiladores, pero realmente trabajando para ser uno de los mejores. Tiene algunos de los mejores diagnósticos de cualquier compilador disponible. Se dirige a LLVM, que le proporciona una gran variedad de herramientas para análisis de tiempo de ejecución y demás. Sin embargo, su principal patrocinador corporativo es Apple, por lo que aunque se ejecuta muy bien en OS/X (y ahora es el compilador predeterminado) en Windows, usted es un lote más por su cuenta - AFAIK, usted necesita algún otro compilador instalado y en funcionamiento (y realmente saber cómo usarlo) para instalarlo. En Windows, esto es un poco como comprar un muscle car en un depósito de chatarra. Si trabajas lo suficiente, es posible que termines con el auto más genial de la ciudad, pero en Windows actualmente es más un proyecto que una herramienta.
un poco más para evitar general:
- Cualquier versión de VC++ antes acerca de la implementación de 2008. Simplemente inferiores de C++.
- Cualquier versión de g ++ antes de 4.x. Nuevamente, implementación inferior de C++.
- djgpp: casi lo peor de lo peor. Esto realmente se dirige a MS-DOS con un extensor de DOS (personalizado). Una versión antigua de gcc redondea el horror.
- OpenWatcom: también se dirige principalmente a MS-DOS. Utiliza un extensor de DOS que es mejor que djgpp, pero eso es bastante condenatorio. El compilador ni siquiera está muy cerca de cumplir con C++ 98; Las actualizaciones de C++ 11 me parecen poco probables de llegar pronto (si es que alguna vez lo hicieron).
- Digital Mars: Walter Bright ahora funciona principalmente en su propio lenguaje D. Aunque un compilador de C++ todavía está disponible, el C++ que compila es bastante obsoleto.
Resumen: si desea un IDE, VC++ Express es la opción más clara. Si le importan más las últimas características de C++ 11 y no le importa trabajar desde la línea de comandos, MinGW es probablemente la mejor opción. Los otros definitivamente tienen nichos, pero consideraría que la mayoría de ellos son inferiores si su objetivo es principalmente el nuevo C++ portátil.
¿Qué tiene que ver la versión de VC++ con la versión de .NET Framework si está escribiendo código nativo? – ildjarn
Puede escribir C o C++ estándar con Visual Studio, el objetivo de su proyecto no tiene que ser el .NET framework. –
VC++ 2010 estará bien. Cuando escribe C++, no usa .NET (ninguna versión). –