Programma di creazione modelli di domini C++ - Note sul rilascio

© Copyright International Business Machines Corporation 2006. Tutti i diritti riservati. Limitazioni previste per gli Utenti del Governo degli Stati Uniti - L'uso, la duplicazione o la divulgazione sono limitati dal GSA ADP Schedule Contract con IBM Corp.

Note sul rilascio

1.0 Limitazioni
   1.1 Supporto di specializzazione del modello
   1.2 Modifica dei campi e dei metodi di tipi C++ anonimi
   1.3 Modifica dei campi e dei metodi di tipi C++ nidificati
2.0 Problemi noti e soluzioni temporanee
   2.1 Definizioni di tipi con nomi qualificati
   2.2 Aggiornamento dei diagrammi con modifiche del codice e indice

1.0 Limitazioni

1.1 Supporto di specializzazione del modello

I modelli di C++ normali possono essere visualizzati e modificati. Tuttavia, le specializzazioni dei modelli e le specializzazioni parziali non vengono supportate a causa della mancanza di supporto in CDT. L'UI corrente non disabilita le voci di visualizzazione per le specializzazioni complete e parziali. Non fa nulla, ad esempio:
template <class T> class MyVec {
 T* data;
 int length;
}; 

Questo è un modello normale. La sua visualizzazione riuscirà.

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

Questa è una specializzazione del modello. La sua visualizzazione non sarà possibile.

1.2 Modifica dei campi e dei metodi di tipi C++ anonimi

La modifica dei campi e dei metodi non supportata per i tipi di C++ anonimi, ad esempio:
class c1 {
   class {int j;} abc;    // Il tipo di membro abc è un tipo anonimo dato che alla classe di definizione non è stato assegnato alcuno nome di tipo
};

Qui il tipo dell'abc del campo è una classe anonima.

La visualizzazione di C++ non è correntemente in grado di gestire i delta delle modifiche per i tipi anonimi quando le operazioni di modifica quali l'aggiunta o l'eliminazione di campi, metodi e vengono eseguite delle enumerazioni letterali sul diagramma. Quindi, la funzionalità di modifica di visualizzazione di C++ vengono disabilitate per i tipi anonimi. Un consiglio generale è quello di lavorare con tipi denominati, per quanto è possibile, così che siano disponibili le funzioni di modifica. Se ciò non dovesse essere possibile, il codice dovrebbe essere direttamente modificato.

1.3 Modifica dei campi e dei metodi di tipi C++ nidificati

La modifica di campi e metodi di tipi di C++ denominati, annidati in spazi nomi anonimi non sono supportati, ad esempio:

namespace {   // spazio nome anonimo
    class c1 {};
}

Qui la classe c1 è un tipo denominato annidato in uno spazio nomi anonimo.

La visualizzazione di C++ non è correntemente in grado di gestire le modifiche ai tipi denominati annidati spazi nomi anonimi quando le operazioni di modifica quali l'aggiunta o l'eliminazione di campi, metodi e vengono eseguite delle enumerazioni letterali sul diagramma. Di conseguenza, le funzioni di modifica della visualizzazione di C++ sono disabilitate per i tipi di nomi annidati in spazi nomi anonimi. Un consiglio generale è quello di lavorare con spazi anonimi denominati, per quanto è possibile, così che siano disponibili le funzioni di modifica. Se ciò non dovesse essere possibile, il codice dovrebbe essere direttamente modificato.

2.0 Problemi noti e soluzioni temporanee

2.1 Definizioni di tipi con nomi qualificati

Le definizioni dei tipi con nomi qualificati non vengono supportate per la visualizzazione di C++, ad esempio:

namespace n1 {
   class c1;    // Inoltrare la dichiarazione della classe c1
}
class n1::c1{ int i;};   //  Definizione della classe c1 che utilizza il nome completo.

La visualizzazione di C++ non riesce a gestire le definizioni suddette e la visualizzazione per la classe c1 non riesce.

Soluzione temporanea: utilizzare il seguente codice equivalente a quello succitato:

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

2.2 Aggiornamento dei diagrammi con modifiche del codice e indice

Talvolta le modifiche nel codice, compreso ridenominare gli elementi o l'aggiunta/eliminazione dei membri nei tipi, potrebbero non essere riflesse nei diagrammi di visualizzazione. Nella maggior parte dei casi è dovuto al fatto che vi è una mancanza di notifiche, o queste sono inadeguate, da CDT.

Soluzione temporanea:  effettuare delle modifiche fittizie ad un file e salvare nuovamente in codice. Inoltre, a volte l'"Indice C/C++" creato da CDT potrebbe non essere congruente con il codice. Una rapida verifica sull'indice C/C++ (Mostra vista > Altro > C/C++ > Indice C/C++) per vedere se mancano delle voci può fornire alcune indicazioni relative al problema dell'indice. In tali casi, ricreare l'indice sul progetto potrebbe essere di aiuto. Tuttavia, la nuova creazione dell'indice potrebbe impiegare troppo tempo per progetti di grandi dimensioni, per cui deve essere utilizzata con prudenza. Se si desidera visualizzare i gli elementi correlati in un diagramma, selezionare l'opzione Indicizzatore C/C++ completo.