title: Why must 'auto' declarations all be of the same type?
body: <p>It appears that it is not allowed to declare multiple variables of distinct types using the <code>auto</code> keyword. I can't figure out the wording in the standard that would prevent it however.</p>
  
  <pre><code>auto i = 1, j = 1.0; //deduction failure (several compilers)
  </code></pre>
  
  <p>Historically I understand since you have only one <em>decl-specifier-spec</em>. However, the rules in the standard don't seem to preclude, in fact they encourage, that <code>auto</code> can be a distinct type for each. Consider these paragraphs:</p>
  
  <blockquote>
    <p>8-3 Each <em>init-declarator</em> in a declaration is analyzed separately as if it was in a declaration by itself.</p>
    
    <p>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. [...]</p>
  </blockquote>
  
  <p>Even without <code>auto</code> not all variables needed to have the same type, as certain modifiers like <code>*</code> could be applied to each declarator individually. To me it appears now that the wording allows each <code>auto</code> declarator to be a completely distinct type.</p>
  
  <p>Which paragraph would prohibit this?</p>