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.