title: C++11 gcc: explicit qualification in declaration? Standard ref?
body: <p>When the following C++11 program is compiled with gcc 4.7:</p>
  
  <pre><code>extern int i;
  int ::i;
  
  int main()
  {
  }
  </code></pre>
  
  <p>gcc complains that:</p>
  
  <pre><code>error: explicit qualification in declaration of `i`
  </code></pre>
  
  <p>Is this non-conformant behaviour?  Where in the standard is this program deemed ill-formed?</p>
  
  <p>8.3p1 seems to indicate that it should be allowed:</p>
  
  <blockquote>
    <p>If the
    qualifier is the global :: scope resolution operator, the declarator-id refers to a name declared in the global
    namespace scope.</p>
  </blockquote>
  
  <p><strong>Update:</strong></p>
  
  <p>From N3485 8.3p1:</p>
  
  <blockquote>
    <p>A list of declarators appears after an optional (Clause 7) decl-specifier-seq (7.1). Each declarator contains
    exactly one declarator-id; it names the identifier that is declared. An unqualified-id occurring in a declarator-
    id shall be a simple identifier except for the declaration of some special functions (12.3, 12.4, 13.5) and for the
    declaration of template specializations or partial specializations (14.7). When the declarator-id is qualified,
    the declaration shall refer to a previously declared member of the class or namespace to which the qualifier
    refers (or, in the case of a namespace, of an element of the inline namespace set of that namespace (7.3.1))
    or to a specialization thereof; the member shall not merely have been introduced by a using-declaration
    in the scope of the class or namespace nominated by the nested-name-specifier of the declarator-id. The
    nested-name-specifier of a qualified declarator-id shall not begin with a decltype-specifier. [ Note: If the
    qualifier is the global :: scope resolution operator, the declarator-id refers to a name declared in the global
    namespace scope. — end note ] The optional attribute-specifier-seq following a declarator-id appertains to
    the entity that is declared.</p>
  </blockquote>