PDA

View Full Version : [Visual Studio 2008] C++ editor


ck-81
29-06-2010, 13:45
Ciao a tutti.

Ho un problema da porvi:

non mi funziona piu l'autocompletamento delle variabili e delle funzioni

i campi degli oggetti me li trova come sempre, ma le variabili di istanza e le funzioni dei file inclusi non me le vede..

ho cercato anche qui http://msdn.microsoft.com/en-us/library/ks1ka3t6.aspx

ma non ho risolto..

grazie

fero86
29-06-2010, 14:50
non risolvi neanche facendo quanto descritto al paragrafo "[C++] There is an issue with the .ncb file" ?
comunque stavi guardando la guida di Visual Studio 2010, mentre tu stai usando la 2008.

tomminno
29-06-2010, 15:00
In ogni caso l'intellisense di VS fino al 2008 per C++ fa decisamente schifo. Può essere che sia normale non funzionamento della funzionalità.
Che io sappia per funzionare correttamente (ma non è necessario) deve ritrovarsi tutti gli header all'interno del file cpp, ricordo infatti che con le wxWidget c'era un header creato appositamente che includeva tutti gli header della libreria, se includevo quello in ogni file cpp l'intellisense funzionava altrimenti era un terno al lotto. Però ad esempio con Qt il problema non mi si presenta.

fero86
29-06-2010, 16:15
Che io sappia per funzionare correttamente (ma non è necessario) deve ritrovarsi tutti gli header all'interno del file cpp, ricordo infatti che con le wxWidget c'era un header creato appositamente che includeva tutti gli header della libreria, se includevo quello in ogni file cpp l'intellisense funzionava altrimenti era un terno al lotto. Però ad esempio con Qt il problema non mi si presenta. non é un requisito troppo strampalato visto che questa cosa in genere la si fa per creare i PCH, che accelerano la compilazione di N volte con N = numero di files sorgenti meno uno (quello usato per creare il PCH, tipicamente si chiama "stdafx.cpp").

edit - comunque preciso che io non mi affido mai a quell'IntelliSense perché non riesco ad essere piu produttivo usandolo; troppe volte non mi funziona, e la mia opinione in merito é che il C++ sia un linguaggio troppo complesso per creare un IntelliSense funzionante, poi magari mi sbaglio.

tomminno
29-06-2010, 17:42
non é un requisito troppo strampalato visto che questa cosa in genere la si fa per creare i PCH, che accelerano la compilazione di N volte con N = numero di files sorgenti meno uno (quello usato per creare il PCH, tipicamente si chiama "stdafx.cpp").


Si ma che c'entra con l'intellisense?


edit - comunque preciso che io non mi affido mai a quell'IntelliSense perché non riesco ad essere piu produttivo usandolo; troppe volte non mi funziona, e la mia opinione in merito é che il C++ sia un linguaggio troppo complesso per creare un IntelliSense funzionante, poi magari mi sbaglio.

Non credo, o meglio si è complesso ma comunque gestibile, perchè altri IDE hanno un intellisense che funziona meglio e VS2010 pure.
E' che l'intellisense del C++ di VS era fermo dai tempi di Visual Studio 6. Oltretutto non ne hanno modificato l'usabilità, ad esempio perchè se l'intellisense mi sta suggerendo la firma di un metodo non me lo scrive se premo doppio tab come nel corrispettivo C#? Dopotutto la parte difficile del lavoro (il parsing) l'ha già fatto. No devo scrivermi a mano tutta la firma con in più la rabbia nel vedere che mi sta suggerendo esattamente quello che devo scrivere...
E perchè non compaiono al volo i suggerimenti come in C# ma bisogna tutte le volte andare di ctrl+space?

fero86
29-06-2010, 19:34
Si ma che c'entra con l'intellisense? io naturalmente non ne ho idea; quello che volevo dire é che per scrivere quell'IntelliSense si saranno basati su un'assunzione ragionevole, quella che il progetto abbia un PCH. certo, sarebbe stato meglio se non vi ci si fossero basati.



Non credo, o meglio si è complesso ma comunque gestibile, perchè altri IDE hanno un intellisense che funziona meglio e VS2010 pure.
E' che l'intellisense del C++ di VS era fermo dai tempi di Visual Studio 6. Oltretutto non ne hanno modificato l'usabilità, ad esempio perchè se l'intellisense mi sta suggerendo la firma di un metodo non me lo scrive se premo doppio tab come nel corrispettivo C#? Dopotutto la parte difficile del lavoro (il parsing) l'ha già fatto. No devo scrivermi a mano tutta la firma con in più la rabbia nel vedere che mi sta suggerendo esattamente quello che devo scrivere...
E perchè non compaiono al volo i suggerimenti come in C# ma bisogna tutte le volte andare di ctrl+space? é vero che potevano migliorare queste cose ma ci sono anche dei malfunzionamenti legati alla complessitá del linguaggio: certe volte io faccio Ctrl+Space e tutto quello che appare é un messaggio nella status bar che mi dice che l'IntelliSense non é disponibile. molto frustrante, tanto che ormai non ci guardo piu, cioé l'IntelliSense di Visual C++ non ci provo neanche piu ad usarlo.

poi io altri IDE per C e C++ non ne ho provati fatta eccezione per Dev-C++, che non é un IDE bensi un catorcio, e una versione un po' vecchia di Code::Blocks che all'epoca rispetto a Visual C++ faceva veramente schifo, quindi ora non ricordo per quanto riguarda l'IntelliSense ma in generale Visual C++ non aveva proprio nulla da invidiargli.