That being said very few C++ IDE's have advanced refactoring due to the scourge that is the C Preprocessor. This also why most people, like myself, stick with Vim for C/C++ development.
That being said very few C++ IDE's have advanced refactoring due to the scourge that is the C Preprocessor. This also why most people, like myself, stick with Vim for C/C++ development.
C and C++ exploration and refactoring tools like rtags that hook directly into a compiler, and integrate with your editor of choice, have never failed me. I haven't put them up against too much in the way of preprocessor macro hell, but I've got to think they've got the best shot at doing "the right thing" in the face of macros.
Just as a random example, see this https://github.com/Andersbakken/rtags/issues/281
* Extract superclass/interface which will work on the whole codebase * Support for NVI - rename, change parameters, convert to virtual interface and back * code duplication detection (maybe exists but I never found sufficient one)
Refactoring tools are incredibly powerful. For example, renaming a class method "foo". You can rename it yourself with a text editor, but now you have to manually update all the callers. You could try using search/replace, but what if several unrelated classes have a "foo" method? How do you only change the correct method calls? The IDE refactoring tool does this automatically.
The political goals of the gcc people didn't exactly help here.