title: Reserved names in the global namespace
body: <p>Arising from my answer to <a href="/q/9660032/">Dynamic array of objects in C++</a> and as a follow up to <a href="/q/228783/">What are the rules about using an underscore in a C++ identifier?</a>:
  apparently, names beginning with <code>_</code> followed by an uppercase letter are reserved in the global namespace. </p>
  
  <blockquote>
    <h3>17.4.3.2.1 Global names [<code>lib.global.names</code>]</h3>
    
    <p>Certain sets of names and function signatures are always reserved to the implementation:</p>
    
    <ul>
    <li>Each name that contains a double underscore (<code>__</code>) or begins with an underscore followed by an uppercase letter (2.11) is reserved to the implementation for any use.</li>
    <li>Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.<sup>165</sup></li>
    </ul>
    
    <p><sup>165)</sup> Such names are also reserved in namespace <code>::std</code> (17.4.3.1).</p>
  </blockquote>
  
  <p>In my answer to the first question I had a class that looked like this </p>
  
  <pre><code>class A
  {
   private:
     vector&lt;int&gt; _Ints;
  }
  </code></pre>
  
  <p>In the comments I was told the <code>_Ints</code> identifier invokes undefined behavior, since it is a reserved name. However, according to the recent draft of the standard, name look-up of a member variable occurs using the following rule:</p>
  
  <blockquote>
    <h3>3.4.3.1 Class members [<code>class.qual</code>]</h3>
    
    <p>If the <em>nested-name-speciﬁer</em> of a <em>qualiﬁed-id</em> nominates a class, the name specified after the <em>nested-namespeciﬁer</em> is looked up in the scope of the class (10.2), except for the cases listed below. The name shall
    represent one or more members of that class or of one of its base classes</p>
  </blockquote>
  
  <p>To me, that means that no member variable can ever be part of the global namespace, as its scope is the class.</p>
  
  <h3>And now, the question:</h3>
  
  <p>Is my understanding correct that member variables will never violate the implementation reserved names rule since they are not in the global namespace?  If I am not correct, could someone explain my misunderstanding of the look-up rule?</p>