C++/CLI Support
In addition to standard ISO C++ syntax, ReSharper also supports Microsoft's C++/CLI Specification syntax, such as ^
for CLR references, gcnew
for allocating on the managed heap, and so on. Besides traditional features such as code inspection, Coding Assistance, and navigation and search, there are some features worth mentioning:
Cross-language navigation works between C++/CLI and C#/VB.NET. However, the #using directive and cross-language refactorings are not supported yet.
You can generate .NET Equals() and GetHashCode() with Alt+Insert.
Some C++ Postfix Templates(
.gcnew
and.foreach
) are specially designed to produce C++/CLI code when invoked in its context.ReSharper inspects the way you allocate memory and suggests a quick-fix to replace
gcnew
withnew
when the target type is not valid. It also works for replacingnew
withgcnew
.Another inspection warns you when you try to use the C++
final
specifier on a managed class or interface, with a quick-fix to make itsealed
instead.You can use a quick-fix to convert a C-style cast to a
safe_cast
.When looking for derived symbols from C++/CLI code, ReSharper will find symbols in C# code in addition to symbols in C++/CLI.
Go to Base Symbols and Go to Derived Symbols also work on imported CLR entities.