title: aIs anonymous namespace structure unique
body: <p>I think I understood that anonymous namespace can be used to make the symbols local to current translation unit. But what about structure definitions, can I assume that they do refer to the same type ?</p>
  
  <p>MyClass.h:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>namespace {
    class MyClass {};
  }
  </code></pre>
  
  <p>A.h:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>#include "MyClass.h"
  
  class A {
      MyClass* impl;
      void op();
  }
  </code></pre>
  
  <p>A.cpp translation unit 1:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>#include "A.h"
  void A::op() {
    // Let *this-&gt;impl refer to a type X.
  }
  </code></pre>
  
  <p>B.cpp translation unit 2:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>#include "A.h"
  void global_op(const A&amp; a) {
    // Can I assume that *a-&gt;impl refer to same type X ?
  }
  </code></pre>