2009-06-11 12 views
9

¿Hay un compilador que tenga un buen soporte para el nuevo C++ 0x?Compatibilidad con el compilador para el próximo C++ 0x

Uso GCC pero lamentablemente la versión actual 4.4 tiene un soporte deficiente para las nuevas características.

+0

Duplicado de http://stackoverflow.com/questions/657511/c-compiler-that-supports-c0x-features –

+4

Cualquier llamada pregunta duplicada que no presenta Comeau (o cualquier compilador basado en EDG, por ej. , Intel, no soy exigente) como una respuesta no vale la pena vincularse. :-P –

+0

@Chris, si una pregunta es un duplicado no tiene nada que ver con sus respuestas. Si cree que faltan las respuestas a la otra pregunta, puede solucionarlo agregando su propia respuesta. –

Respuesta

4

El único compilador que tiene una la implementación de conceptos es conceptgcc (e incluso eso está incompleto, pero es lo suficientemente bueno como para tener una buena idea de la función).
Visual C++ 2010 Beta tiene compatibilidad con C++ 0x: puedes jugar con lambdas, referencias rvalue, auto, decltype.
Comeau C++ o los compiladores basados ​​en EDG sorprendentemente no son tan avanzados que hubiera esperado que estuvieran en su implementación de C++ 0x.
GCC 4.4 (plantillas variadic, listas de inicializadores, espacios de nombres en línea, autor, decltype) probablemente tiene la mayoría de las funciones implementadas de cualquiera de los otros compiladores, pero está rezagado en conceptos y lambdas (el desarrollo de ramas por separado está en curso).

+4

conceptgcc solo implementa una propuesta de conceptos desactualizada y es muy defectuoso e inestable. – sellibitze

+2

Pensé que los conceptos se eliminaron de C++ 0x. –

3

La actual beta version del Comeau compiler parece tener una buena compatibilidad con C++ 0x.

+0

me han tratado http://www.comeaucomputing.com/tryitout/ el compilador en línea ... y no sería compilar 'std :: shared_ptr' ... –

+1

@Stephane: Es' std :: TR1 :: shared_ptr ', not' std :: shared_ptr'. –

+0

gracias por el comentario ;-) Le daré otra oportunidad. –

1

C++ 0x todavía no está listo, por lo que no espere que sea compatible con atm. GCC 4.4 y Visual C++ 2010 son buenos candidatos (tienen algunas de las características más esperadas, como lambdas y auto) que le permiten comenzar, pero el estándar aún no está terminado.

6

Me temo que gcc es probablemente lo mejor que obtendrás en esta etapa.

Hay una lista de características y compiladores soportados aquí:

http://wiki.apache.org/stdcxx/C++0xCompilerSupport

+3

gcc puede ser la mejor uno libre. Pero el compilador de Comeau siempre ha sido bueno. –

3

GCC 4.4 no tienen al menos algunas de las características interesantes (auto, plantillas variadic, referencias rvalue, etc.). También hay ramas de desarrollo para conceptos y lambdas.

Ver C++0x support in GCC.

1

recomiendo compilador de Intel si su Linux/Unix que tiene un mejor soporte de GCC y produce más rápido/binarios más pequeños (que normalmente reciben un aumento de rendimiento libre de 10% de usarlo)

+0

Actualización 12/12/12: El soporte del Compilador Intel para C++ 11 es una pesadilla en Windows. No es compatible con listas de inicializadores, anulación, final y soporte para noexcept recién se ha agregado. He tenido errores internos en el compilador al compilar el código estricto de C++ 11. Tenemos un nuevo proyecto C++ 11 y gcc 4.7.2 lo maneja bien y productividad ++, pero conseguir un entorno C++ 11 configurado en Windows es casi imposible. –

Cuestiones relacionadas