Ist es in dem Zustand, in dem es tatsächlich nützlich ist und kann mehr als Klassen umbenennen?Wie ist der Status der C++ Refactor-Unterstützung in Eclipse?
Antwort
CDT (C/C++ Entwicklungstools - Eclipse-Projekt) 5.0 hat eine Reihe von neuen Refactorings
* 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
Es gibt eine CDT Refactoring wiki
Ja, und die meisten von ihnen arbeiten nicht wirklich, wenn Der Code ist zu kompliziert. Dinge wie Verschieben einer Methode, Umbenennen usw. haben manchmal Probleme.
C++ ist eine sehr harte Sprache, die Refactoring-Unterstützung bietet. Dies liegt daran, dass die Sprache sehr komplex und schwer zu analysieren ist, aber hauptsächlich wegen des Präprozessors.
Der Präprozessor ist der Hauptgrund, warum C/C++ IDEs hinter anderen Sprachen zurückbleiben.
Das und die Tatsache, dass C++ keine staatenlose Grammatik hat. –
Es gab zahlreiche Bemühungen, Refactoring-Tools für C++ bereitzustellen, die meisten von ihnen scheiterten ziemlich früh, weil die Erstellung solcher Tools die volle Fähigkeit zur Verarbeitung von C++ - Quellcode erfordert, dh Sie benötigen einen funktionierenden und vollständigen C++ - Compiler erster Ort, um selbst die grundlegendsten Formen automatisierter Quell-zu-Quell-Transformationen zu implementieren.
Glücklicherweise ist es mit der Einführung von plugins into gcc endlich absehbar, dass verwandte Bemühungen tatsächlich in der Lage sind, einen vorhandenen C++ - Compiler für diesen Zweck zu nutzen, anstatt auf ihre eigenen Implementierungen eines C++ - Compilers zurückgreifen zu müssen.
Für eine ausführlichere Diskussion, möchten Sie vielleicht this auschecken.
Derzeit ist der vielversprechendste Kandidat für eine weitgehend automatisierte C++ - Refactoring-Unterstützung sicherlich das Projekt Mozilla pork, zusammen mit dem zugehörigen Companion-Projekt Dehydra.
Einige C++ - Refactorings, die z. B. von Ref ++ unterstützt werden, müssen die C++ - Syntax nicht vollständig verstehen. Zum Beispiel Pull-Up-Methode, Push-Down-Methode usw. sind ziemlich einfach. Aus irgendeinem Grund werden solche Refactorings nicht in CDT-Refactorings implementiert.
- 1. Wie ist der Status der C++ TR2-Dateisystembibliothek?
- 2. Wie ist der offizielle Status der C99-Unterstützung in VS2013?
- 3. Namensspezifische Modelle in Rails: Wie ist der Status der Union?
- 4. Was ist der Status von Bereichen in C++?
- 5. Wie ist der aktuelle Status von Biicode?
- 6. Was ist der Status der funktionalen reaktiven Programmierung in Python?
- 7. Was ist der aktuelle Status von C++ AMP
- 8. Wie ist der Status von #resource ('main.css') in Dart
- 9. Wie lautet der Status der Javascript-Sprache?
- 10. Warum ist der Status des Akteurs verloren?
- 11. Insert-Status in der Datenbank
- 12. Was ist der Status von C++ 1z/C++ 17 Unterstützung in gcc?
- 13. Wie ist der aktuelle Status von eingeschränkten Monaden?
- 14. Wie ist der aktuelle Status des Helios-Projekts?
- 15. SignalR Status der Verbindung
- 16. Status der virtuellen Tastatur
- 17. In der Eclipse
- 18. Wie ist der aktuelle Status von D-Standardbibliotheken?
- 19. Wie löse ich den Status, wenn der Service fehlgeschlagen ist
- 20. Die Verbindung wurde nicht geschlossen. Der aktuelle Status der Verbindung ist offen. C# Fehler
- 21. Wie kann der Status der zwei Batterien abgerufen werden?
- 22. 301 Status während der Verwendung der Postanforderung
- 23. Ist eine statische Klasse geeignet, wenn der Status unveränderlich ist?
- 24. HTTP-Status 404 Fehler in Eclipse Tomcat
- 25. wo ist der rss read/ungelesen Status gespeichert in
- 26. Der Status der Freigabeaufgaben konnte in der VSTS-Rollback-Aufgabe
- 27. Ändern der Farbe der Benutzeroberfläche in Eclipse
- 28. Ich bin nicht in der Lage, C-Programm in Eclipse
- 29. Wo ist der Eclipse ADT Bundle Link?
- 30. Was ist der aktuelle Status der Unit-Test-Unterstützung in der R-Sprache
Verwenden Sie keine Makros und #if und alles wird gut. –