ReSharper 2019.3 Help

Inlay Hints in C++

Parameter name hints

Parameter name hints are editor adornments that show parameter names next to the corresponding arguments at method calls. They can help you find your way through long (and sometimes nested) lists of parameters in function calls and aggregate initialization.
In the example below, parameter name hints help spotting the fact that height and width arguments are mixed up:
ReSharper C++: parameter name hints

Parameter name hints show the names of the members you are initializing and help disentangle complex aggregate initializations in C++17 and later:

ReSharper C++: parameter name hints in aggregate initialization

Namespace name hints

Namespace name hints at the end of namespace definitions could be helpful if you are not following the LLVM or Google guidelines, which suggest adding namespace in a comment after the namespace closing bracket:
ReSharper: Inlay hints. Namespaces.

Preprocessor directive hints

Preprocessor directive hints help you quickly understand how conditional inclusions (#ifdef, #ifndef, #if, #endif, #else, and #elif) correspond to macro definitions:

ReSharper: Preprocessor directive hints in C++

Type name hints

Type name hints help you when a type is deduced automatically by the compiler from the surrounding code. ReSharper provides type name hints for auto variables, function and lambda return types, in structured bindings, dependent code, and after function calls.

Auto variables

The hints are available for variables with automatically deduced type, which use the auto or decltype(auto) type specifiers. By default, the hint will be hidden if the deduced type is clear from the initializer expression, for example when the initializer is a constructor call, a constant, or an explicit cast.

ReSharper C++: type name hints for auto variables

Function and lambda return types

The return types of functions and lambdas can be automatically deduced from the return statement when they are omitted in the code:

ReSharper C++: type name hints for function and lambda return types

Structured bindings

In C++17’s structured binding declarations, type hints are especially useful since the type of a structured binding cannot be explicitly specified.

ReSharper C++: type name hints for structured bindings

Dependent code

Type hints also work for dependent code, but they are turned off by default to not affect the performance.

ReSharper C++: type name hints for dependent code

Function calls

With the default settings, this kind of type hint is shown only after multiline chained member functions calls.

ReSharper C++: type name hints for functions calls

There are granular configuration options for the hints.

Last modified: 24 February 2020