title: Enum error: 'enum' : missing tag name
body: <p>I am trying to compile an application which is showing error in following line:</p>
  
  <pre><code>enum class HoleMaskPixelTypeEnum {HOLE, VALID, UNDETERMINED};
  </code></pre>
  
  <p>I haven't uses enum is such way along with class keyword. If I comment the keyword class then following error occur </p>
  
  <pre><code>error C2864: 'HolePixelValueWrapper&lt;T&gt;::Value' : only static const integral data members can be initialized within a class
  </code></pre>
  
  <p>which is in following code:</p>
  
  <pre><code> template &lt;typename T&gt;
  struct HolePixelValueWrapper
  {
    HolePixelValueWrapper(const T value) : Value(value){}
  
    operator T()
    {
      return this-&gt;Value;
    }
  
    T Value = 0;//error here.
  };
  </code></pre>
  
  <p>No idea to solve it.</p>