``++auto++``is a type placeholder that may be used in variable declarations to instruct the compiler to infer the type from the initializer.
The use of ``++auto++`` reduces unnecessary boilerplate in the situation when the type of the variable is apparent from the context. However, outside of some obvious situations (e.g. when type is spelled in the initializer), the judgment is hard to make. Usually, it is trying to balance between the verbosity of type and the readability from the contributor's perspective.
Arguably, in the case of the variables initialized from a function that conventionally returns an iterator (e.g. ``++begin++``, ``++end++``, ``++std::find++``), it is clear that the type of the variable is some iterator. Spelling the exact type of the iterator in such a situation does not improve the clarity of the code, especially considering their usual verbosity.
This rule raises an issue on the declaration of a variable with an explicit iterator type. and that is initialized from call to a function that conventionally returns an iterator:
* ``++begin++`` and ``++end++`` functions and their const and reverse variants