Visualización en C++ - Notas del release

© Copyright International Business Machines Corporation 2006. Reservados todos los derechos. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

Notas del release

1.0 Limitaciones
   1.1 Soporte de especialización de plantilla
   1.2 Edición de campos y métodos de tipos C++ anónimos
   1.3 Edición de campos y métodos de tipos C++ anidados
2.0 Problemas conocidos y soluciones provisionales
   2.1 Definiciones de tipos con nombres calificados
   2.2 Renovación de diagramas con cambios de código e índice

1.0 Limitaciones

1.1 Soporte de especialización de plantilla

Se pueden visualizar y editar plantillas C++ normales. Sin embargo, no se da soporte a especializaciones de plantillas ni a especializaciones parciales debido a la falta de soporte en CDT. La UI actual no inhabilita las entradas de visualización para especializaciones completas y parciales. Simplemente no hace nada; por ejemplo:
template <class T> class MyVec {
 T* data;
 int length;
}; 

Esta es una plantilla normal. Su visualización será satisfactoria.

template <> class MyVec<bool> {
 unsigned int * data;
 int length;
}; 

Esta es una especialización de plantilla. Su visualización fallará.

1.2 Edición de campos y métodos de tipos C++ anónimos

La edición de campos y métodos no está soportada para tipos C++ anónimos, por ejemplo:
class c1 {
   class {int j;} abc;    // El tipo de miembro abc es un tipo anónimo ya que no se proporcionado a la clase de definición ningún nombre de tipo
};

Aquí el tipo del campo abc es una clase anónima.

Actualmente la visualización en C++ no permite manejar los deltas de cambios para tipos anónimos cuando se realizan operaciones de edición, tales como la adición o la supresión de campos, métodos y literales enum, en el diagrama. Por lo tanto, la funcionalidad de edición de la visualización en C++ está inhabilitada para los tipos anónimos. La recomendación general es trabajar con tipos con nombre mientras sea posible, de forma que las características de edición estén disponibles. Si esto no es posible, el código se debe editar directamente.

1.3 Edición de campos y métodos de tipos C++ anidados

No se da soporte a la edición de campos y métodos de tipos C++ con nombre anidados en espacios de nombres, por ejemplo:

namespace {   // anonymous namespace
    class c1 {};
}

Aquí class c1 es un tipo con nombre anidado en un espacio de nombres anónimo.

Actualmente la visualización en C++ no permite manejar los cambios en tipos con nombre anidados en espacios con nombres anónimos cuando se realizan operaciones de edición, tales como la adición o supresión de campos, métodos o literales enum en el diagrama. Por lo tanto, las características de edición de visualización en C++ están inhabilitadas para tipos de nombre anidados dentro de espacios de nombres anónimos. La recomendación general es trabajar con espacios de nombres con nombre mientras sea posible, de forma que las características de edición estén disponibles. Si esto no es posible, el código se debe editar directamente.

2.0 Problemas conocidos y soluciones provisionales

2.1 Definiciones de tipos con nombres calificados

No se da soporte a las definiciones de tipos con nombres calificados para la visualización en C++, por ejemplo:

namespace n1 {
   class c1;    // Declaración hacia adelante de class c1
}
class n1::c1{ int i;};   //  Definición de class c1 utilizando el nombre completo.

La visualización en C++ no puede manejar las definiciones anteriores y la visualización de class c1 falla.

Solución provisional: utilice el equivalente siguiente del código anterior:

namespace n1 {
 class c1{ int i;};
}

2.2 Renovación de diagramas con cambios de código e índice

Es posible que algunas veces los cambios en el código, incluyendo el cambio de nombre de los elementos o la adición/supresión de miembros en los tipos no esté reflejada en los diagramas de visualización. Las causas más habituales de esto son la inexactitud de las notificaciones de cambio por parte del CDT, o la falta de las mismas.

Solución provisional: realice cambios falsos en un archivo y guarde el código una vez más. Además, es posible que a veces el "Índice de C/C++" creado por CDT no sea coherente con el código. Una comprobación rápida del índice de C/C++ (Mostrar vista > Otros > C/C++ > Índice de C/C++) para ver si faltan algunas entradas puede darle alguna pista de que se trata de un problema de actualización del índice. En estos casos, es posible que volver a crear el índice en el proyecto sea útil. Sin embargo, volver a crear el índice puede llevar bastante tiempo para proyectos grandes y se debe utilizar con prudencia. Si desea mostrar objetos relacionados en un diagrama, seleccione la opción Indexador C/C++ completo.