It appears that it is not allowed to declare multiple variables of distinct types using the auto
keyword. I can't figure out the wording in the standard that would prevent it however.
auto i = 1, j = 1.0; //deduction failure (several compilers)
Historically I understand since you have only one decl-specifier-spec. However, the rules in the standard don't seem to preclude, in fact they encourage, that auto
can be a distinct type for each. Consider these paragraphs:
8-3 Each init-declarator in a declaration is analyzed separately as if it was in a declaration by itself.
7.1.6.4-7 If the list of declarators contains more than one declarator, the type of each declared variable is determined as described above. [...]
Even without auto
not all variables needed to have the same type, as certain modifiers like *
could be applied to each declarator individually. To me it appears now that the wording allows each auto
declarator to be a completely distinct type.
Which paragraph would prohibit this?