È nello stato in cui è effettivamente utile e può fare più di rinomina classi?Qual è lo stato del supporto del refactore C++ in Eclipse?
risposta
CDT (C/C Strumenti ++ Development - Eclipse progetto) 5.0 ha un sacco di nuove refactoring
* Declare Method
* Extract Baseclass
* Extract Constant
* Extract Method
* Extract Subclass
* Hide Method
* Implement Method
* Move Field/Method
* Replace Number
* Separate Class
* Generate Getters and Setters
C'è un refactoring CDT wiki
Sì, e la maggior parte di loro non funzionano in realtà se il codice è troppo complicato. Cose come spostare un metodo, rinominare, ecc. Hanno problemi a volte.
C++ è un linguaggio molto difficile per fornire supporto per il refactoring. Questo perché la lingua è molto complessa e difficile da analizzare ma è principalmente a causa del preprocessore.
Il preprocessore è il motivo principale per cui gli IDE C/C++ sono in ritardo rispetto ad altre lingue.
Questo, e il fatto che C++ non ha una grammatica senza stato. –
Ci sono stati numerosi sforzi per fornire strumenti di refactoring per C++, la maggior parte di essi è fallita molto presto, perché la creazione di tali strumenti richiede la piena capacità di elaborare il codice sorgente C++, cioè è necessario un compilatore C++ funzionante e completo nel primo posto per implementare anche le forme più basilari di trasformazioni automatiche da sorgente a fonte.
Fortunatamente, con l'introduzione di plugins into gcc, è finalmente prevedibile che gli sforzi correlati possano effettivamente essere in grado di sfruttare un compilatore C++ esistente per questo scopo, invece di dover ricorrere alle proprie implementazioni di un compilatore C++.
Per una discussione più approfondita, si consiglia di controllare this.
Per il momento, il candidato più promettente per fornire supporto per il refactoring C++ ampiamente automatizzato, è certamente il progetto Mozilla pork, insieme al relativo progetto associato Dehydra.
Alcuni refactoring C++ supportati, ad esempio, da Ref ++ non hanno bisogno di comprendere completamente la sintassi C++. Ad esempio, il metodo pull up, il metodo push down ecc. Sono piuttosto semplici. Per qualche motivo questo tipo di refactoring non è implementato per i refactoring CDT.
- 1. Qual è lo stato ufficiale del supporto C99 in VS2013?
- 2. Qual è lo stato del supporto TTF in Internet Explorer?
- 3. Qual è lo stato del supporto C++ 1z/C++ 17 in gcc?
- 4. Qual è lo stato corrente del biocode?
- 5. Qual è lo stato della libreria del filesystem C++ TR2?
- 6. Qual è lo stato corrente del supporto per il test delle unità in linguaggio R
- 7. Qual è lo stato del supporto multicast nei router di fascia consumer
- 8. Qual è lo stato corrente del supporto per "thread_local" tra le piattaforme?
- 9. Qual è lo stato del supporto C99 nei principali compilatori/toolchain?
- 10. Qual è lo stato attuale del progetto Helios?
- 11. Stato del supporto D su iOS
- 12. Qual è lo stato stack del kernel del processo Linux durante la creazione del processo?
- 13. Aggiorna stato del menu Eclipse abilitato stato
- 14. Qual è lo scopo del file vshost.exe?
- 15. Qual è lo stato degli intervalli in C++?
- 16. Qual è lo scopo del trasformatore IdentityT?
- 17. : Ottieni lo stato del provider
- 18. C++ Qual è lo scopo del lancio a vuoto?
- 19. Qual è lo stato corrente di C++ AMP
- 20. Utilizzo di Libreria del progetto di supporto in Eclipse
- 21. Objective-C: controllare lo stato del firewall in OSX?
- 22. Qual è lo scopo del prototipo?
- 23. Qual è lo stato di CAT.NET?
- 24. Qual è lo schema del tratto Laravel?
- 25. Qual è lo scopo del parametro -m?
- 26. Qual è lo scopo del nodo jasmine?
- 27. Qual è lo stato corrente di PocoCapsule?
- 28. Qual è lo scopo del controllo VisitorIdentification?
- 29. Qual è lo scopo del file Manifest
- 30. Qual è lo scopo del metodo Thread.SpinWait?
non utilizzare macro e #if e tutto andrà bene. –