Inlay Hints in 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:
Parameter name hints are available in dependent code as well:
Namespace name hintsLLVMGoogle
Preprocessor directive hints
Preprocessor directive hints help you quickly understand how conditional inclusions (
#elif) correspond to macro definitions:
Type name hints
This kind of hints is available for variables with automatically deduced type, which use the
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.
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:
In C++17’s structured binding declarations, type hints are especially useful since the type of a structured binding cannot be explicitly specified.
Type hints also work for dependent code but note that they can affect the performance. In this case, disable the dependent code hints on the Alt+R, O).page of ReSharper options (
With the default settings, this kind of type hint is shown only after multiline chained member functions calls.
There are granular configuration options for the hints.