title: Point of declaration for an enumeration
body: <p>What is the point of declaration of enumeration types? Is it immediately after the name of an enumeration? I saw Standard C++ 14 (n4296) §3.3.2/3:</p>
  
  <blockquote>
    <p>The point of declaration for an enumeration is immediately after the
    identifier (if any) in either its enum-specifier (7.2) or its first
    opaque-enum-declaration (7.2), whichever comes first</p>
  </blockquote>
  
  <p>But when I try to reproduce it;</p>
  
  <pre><code>template &lt;class T&gt;
  struct CL
  {
      using UndType = int;
  };
  
  enum class E: CL&lt;E&gt;::UndType;  //error: E is undefined
  </code></pre>
  
  <p>I have got an error on all the compilers, although <em>enum-base</em> for enumeration <code>E</code> is placed after the identifier and must be visible.</p>