How are ReSharper C++ and Visual Assist different?
My answer does not claim completeness but here is what stood out to me.
ReSharper C++
Pros:
- Has static code analysis. I especially liked that it marks potentially "superfluous includes", although this is not always correct.
- Gives the impression of being more feature-rich than Visual Assist.
Cons:
- Twice as expensive as Visual Assist and when your maintenance period of one year runs out, you only get to keep the version from the beginning of that year.
- It seemed to me that it did not work well in combination with CMake. I think it always did a complete rescan of the code after re-running CMake. During the rescan, not all the functionality is available for all files and the scan slowed down my system.
- At work, I develop on a virtual machine and and here it was unbearably slow. At home on a native machine it is better, but still slows down Visual Studio during the rescan.
- Did not work well in combination with the VSCommands plugin, so VSCommands must be disabled while using ReSharper C++.
Visual Assist X
Pros:
- IMO significantly better automatic code completion than ReSharper C++.
- I liked the refactoring functionality better. Can't remember why ...
- Half the price of ReSharper C++ and you get to keep the version from the end of your one-year maintenance period.
- IMO gets not as much in your way as ReSharper. But ReSharper has lots of settings so this problem can possibly be fine-tuned away.
To be fair, I should mention that I bought a license of Visual Assist and only used the one-month trial version of ReSharper so I am a little biased. The problem was that I knew the important shortcuts of Visual Assist already when I tried ReSharper so working with ReSharper felt slower and less effective. I seriously considered buying ReSharper but the slowness in combination with CMake made me decide against it. The only feature from ReSharper that I really miss is the "superfluous includes" thingy I mentioned above.
I tried ReSharper about half a year ago (end of 2015). Both programs can be used freely for one month as a trial version so you can just try what works better for you.
Edit:
- The information about the pricing may not be accurate any more.
- In the meantime, buying a Visual Assist key has become more complicated which is somewhat annoying. Now a human must confirm your purchase which may take to the next workday and you additionally have to register the software at another web-site which requires setting up an account.
- I think the trial phase for Visual Assist has been shortened to weeks.
Disclaimer: I'm a developer on the ReSharper C++ team.
Since functionality of ReSharper C++ and VAX is similar in many areas, I'm going to highlight only the important differences.
ReSharper C++
- Provides on-the-fly code analysis with a vast array of both compile errors and code quality checks with corresponding quick fixes and configurable severities. For example, R++ will warn if an include is unnecessary, a variable is uninitialized, a polymorphic class has public non-virtual destructor or when a function can be made 'static' or 'const'.
- Code analysis can be performed on entire solution, so R++ can also serve as a static analysis tool.
- Has more code generation features (including generation of special member functions) and a set of context actions that help to understand and transform code (e.g. to substitute a macro call or an 'auto' specifier).
- Includes a configurable code formatter (VAX uses the builtin Visual Studio formatter).
- Has a unit test explorer and runner that support Google test and Boost.Test libraries.
- Is based on a precise code model which correctly handles template instantiations, preprocessing, context-depending parsing and overload resolution.
Visual Assist X
- Is generally faster on large projects than R++.
- Has debug assistance functionality, including a memory view tool window and debug step filters.
- Supports C++/CLI.
You can also take a look at a detailed feature-by-feature comparison page.
The point Knitschi made about pricing is not entirely correct. Comparing e.g. US prices, a yearly price for ReSharper C++ (which only supports C++ compared to ReSharper Ultimate) is less than the one for VAX both for organizations and individual customers. ReSharper C++ is also available for free for teachers, students and open source projects.
ReSharper C++ is in active development and gains a lot of new features with every release. If you have any problems or feature requests, please report them to the issue tracker.