title: 'enum struct' won't compile unless <iostream> is included
body: <p>I have code that contains the line</p>
  
  <pre><code>enum struct cols: int8_t {red, blue, green};
  </code></pre>
  
  <p>When i compile this, i  get errors:</p>
  
  <pre><code>test.cpp:4:1: warning: elaborated-type-specifier for a scoped enum must not use the 'struct' keyword
   enum struct cols: int8_t {red, blue, green};
   ^
  test.cpp:4:13: error: use of enum 'cols' without previous declaration
   enum struct cols: int8_t {red, blue, green};
               ^
  test.cpp:4:17: error: expected unqualified-id before ':' token
   enum struct cols: int8_t {red, blue, green};
                   ^
  </code></pre>
  
  <p>However if i put the line </p>
  
  <pre><code>#include &lt;iostream&gt;
  </code></pre>
  
  <p>at the top, it compiles without complaint.</p>
  
  <p>Is there an explanation for this?</p>
  
  <p>(I am using g++ 4.9.4, but this behaviour is also displayed with g++ 5.4.0.)</p>