title: Multiple Definition of Class in Different Translation unit
body: <p>I have few doubts in C++ standard section 3.2 [basic-def-odr] bullet point 6   ( i.e -3.2.6).</p>
  
  <p>There couple of conditions are specified that tells if a class can be defined multiple times having each definition in separate Translation unit.</p>
  
  <p>I an not able to find an example of the emphasized part below in this bullet:</p>
  
  <blockquote>
    <p>in each definition of D, corresponding names, looked up according to
    [basic.lookup], <strong>shall refer to an entity defined within the
    definition of D, or shall refer to the same entity</strong>, after overload
    resolution ([over.match]) and after matching of partial template
    specialization ([temp.over]), except that a name can refer to a
    non-volatile const object with internal or no linkage if the object
    has the same literal type in all definitions of D, and the object is
    initialized with a constant expression ([expr.const]), and the object
    is not odr-used, and the object has the same value in all definitions
    of D .</p>
  </blockquote>
  
  <p>Can anyone please give an example where <strong>"shall refer to an entity defined within the definition of D"</strong> comes out to be false and makes multiple defintion as an error...</p>
  
  <p>It would be more helpful if example can be provided to explain the below bullet in the same section as well..</p>
  
  <blockquote>
    <p><em>in each definition of D, a default argument used by an (implicit or explicit) function call is treated as if its token sequence were
    present in the definition of D; that is, the default argument is
    subject to the three requirements described above (and, if the default
    argument has sub-expressions with default arguments, this requirement
    applies recursively</em></p>
  </blockquote>
  
  <p>Thanks in Advance </p>