|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
[Visual C++]
Ciao a tutti, volevo sapere se esiste una add-on per Visual C++ che implementi alcune funzionalità di supporto all'inserimento del codice, tipo eclipse.
Ad esempio il controllo dei parametri passati quando si chiama una funzione, dei metodi chiamati di una classe, avete presente quando eclipse sottolinea di rosso o di giallo ciò che viene inserito se non è coerente? In caso contrario è possibile sviluppare add-on per Visual C++? |
![]() |
![]() |
![]() |
#2 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
|
Quote:
|
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2008
Messaggi: 237
|
Visual Assist talvolta riesce a sottolineare l'errato passaggio dei parametri, e *forse* qualcosa lo fa anche CodeRush/Refactor Pro (non so se lo fa solo per .NET o anche per VC++) ma il punto è che quello che vedi fatto per java/c#/etc non è fattibile allo stesso modo per il C++ perché il C++ ha solo la maschera di un linguaggio tipizzato, ma in realtà la sua tipizzazione fa abbastanza ridere, e nessuno ti vieta, per esempio, di castare a void* e poi di castare da void* a qualcos'altro. Determinare che cosa stai facendo a quel punto diventa a dir poco ostico...
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
Un lavoro pulito pero' non dovrebbe avere bisogno di molti cast e magari anche nessun object.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 11-05-2009 alle 12:30. |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Se di cast si parla allora tutto è possibile, persino in Java che tu ritieni abbia una tipizzazione migliore...
Comunque valuterò se conviene sviluppare qualcosa del genere "in casa"... per C++, gestione delle classi .NET o native. Visual Assist X purtroppo è a pagamento con licenza d'uso limitata a 6 mesi/1 anno e non mi sembra molto conveniente per chi sviluppa non professionalmente. CodeRush è sulla stessa scia e da quanto ho visto mi sa che è solo per .NET. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
Comunque ci sono add-on e si possono scrivere (mai fatto)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Quote:
Nella express edition per lo meno non esistono... |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Jul 2008
Messaggi: 237
|
Infatti, in Java/C#/etc è considerata pratica pessima quella di avere object in giro (non a caso hanno inventato i generics) mentre di void* in C++ ne ho visti a non finire. Inoltre mi pare che con ReSharper il downcast a object e l'upcast a tipo non compatibile venga rilevato, ma dovrei verificare. Tutto sommato comunque è molto più facile da rilevare in C#/Java/etc che in C++ perché quando si effettua il downcasting a object l'informazione del tipo viene preservata (e appunto l'upcasting a un tipo non compatibile viene rilevata al più tardi in runtime, al contrario del C++ dove può passare del tutto inosservata) e grazie a questo un po' di flow analysis certi errori li può far saltar fuori facilmente.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:10.