Qual è lo stato del supporto del refactor C ++ in Eclipse?
-
02-07-2019 - |
Domanda
È nello stato in cui è effettivamente utile e può fare di più che rinominare le classi?
Soluzione
CDT (C / C ++ Development Tools - progetto eclipse) 5.0 ha un sacco di nuovi 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
Esiste un refactoring CDT wiki
Altri suggerimenti
Ci sono stati numerosi sforzi per fornire strumenti di refactoring per C ++, la maggior parte di essi è fallita abbastanza 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ù elementari di trasformazioni automatizzate da fonte a fonte.
Fortunatamente, con l'introduzione di plugin in gcc , sta finalmente diventando prevedibile che gli sforzi potrebbero 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, potresti voler dare un'occhiata a this .
Per il momento, il candidato più promettente per fornire supporto di refactoring C ++ ampiamente automatizzato, è sicuramente il Mozilla pork , insieme al relativo progetto associato Dehydra .
Alcuni refactoring C ++ che sono supportati ad esempio da Ref ++ non devono comprendere appieno la sintassi C ++. Ad esempio il metodo pull up, il metodo push down ecc. Sono abbastanza semplici. Per qualche motivo questo tipo di refactoring non è implementato per refactoring CDT.
Sì, e la maggior parte di loro non funziona davvero se il codice è troppo complicato. Cose come spostare un metodo, rinominare, ecc. A volte hanno problemi.
C ++ è un linguaggio molto difficile da 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.