2010-01-02 11 views
13

Cada IDE que he intentado no proporciona la finalización del código cuando se utiliza algo relacionado con la plantilla. Por ejemplo,¿Hay un IDE de C++ que maneje bien las plantillas?

boost::shared_ptr<Object> ptr; 
ptr->[cursor is here] 

¿Hay IDE que puede proporcionar la finalización de código en este caso?

Respuesta

6

En realidad, este es un caso de uso de plantilla bastante simple, Qt Creator también puede manejar este código de plantilla fácil y más complejo.

+1

Falla para el impulso :: static_pointer_cast (baseClassObject) -> [el cursor está aquí], donde baseClassObject tiene tipo BaseClass, y DerivedClass se deriva de BaseClass. Pero, de todos modos, actualmente es el mejor. –

+1

Siempre encontrará casos que funcionan en un IDE específico pero no en otro. La pregunta es qué funciona en la mayoría de los casos. Qt Creator es un IDE en evolución y es gratis. También estoy bastante seguro de que si emite un error en un caso específico, como el que mencionó con boost :: static_pointer_cast, se tratará. –

+0

¿Cuál es la conexión entre "es un IDE en evolución" y "es realmente un * buen * IDE"? Si está evolucionando, eso significa que algún día * se volverá * bueno, ciertamente no implica automáticamente que sea bueno * ahora *. – jalf

7

Visual Studio with Visual Assist X maneja ese caso, pero aún falla el código más complejo.

2

día G,

Como acotación al margen, lo recomiendo mucho excelente "Effective STL" libro de Scott Meyers.

El ítem 49 "Aprende a descifrar los diagnósticos del compilador relacionados con STL" ¡vale la pena el precio de la admisión solo! La información que contiene también se aplica a la decodificación de diagnósticos relacionados con plantillas complejas más allá de STL, p. para Boost.

Diviértete.

BTW +1 para una pregunta interesante.

aplausos,

1

Eclipse + el plugin CDT se encargará de esto, así como las otras herramientas mencionadas

+1

No, no es así. Acabo de comprobar. En su lugar, da una lista de variables locales. –

+2

¿Estás seguro de haberlo configurado correctamente? Funciona para mí – Glen

4

siempre he utilizo Eclipse C/C++ IDE. También admite la finalización de código :)

+1

No funciona incluso para el caso de uso mencionado. –

+0

Funciona mejor para el caso de uso mencionado –

1

Visual Studio 2010 ha mejorado significativamente en esta área. Hay una versión beta abierta, deberías echarle un vistazo.

+0

He estado usando vs2010 (beta) durante un mes, ¡y tendría que estar de acuerdo! –

0

NetBeans a veces lo hace bien, pero no siempre. No es determinista: el código aparentemente similar se puede analizar, o no, según el capricho del IDE.

1

Esto funciona en Eclipse CDT, pero puede que tenga que establecer explícitamente las rutas de inclusión en Proyecto-> Propiedades-> C/C++ General-> Rutas y Símbolos. Debajo de mi env. Tuve que buscar y agregar explícitamente el include \ C++ \ 4.2.1 e incluir \ C++ \ 4.2.1 \ m68k-elf. El solo hecho de tener el directorio especificado en el compilador cruzado root \ include no permitió que la asistencia de contenido funcionara. Por supuesto, una vez que agregue los directorios, reconstruya el índice.

Es posible que deba comprobar la configuración de Windows-> Preferencias-> C/C++ -> Límite de caché del indexador y aumentarlas si son demasiado pequeñas. Tengo el mío configurado a un máximo de 256 MB.

Cuestiones relacionadas