title: Why does including <windows.h> result in "error: expected ')' before numeric constant" on an unrelated #define statement
body: <p>Can anybody explain what is going wrong here?  When I try to compile <a href="https://github.com/lxqt/qtermwidget" rel="nofollow noreferrer">qtermwidget</a> under <a href="http://mingw-w64.org" rel="nofollow noreferrer">MinGW-w64</a>, and adding <a href="https://github.com/mirror/mingw-w64/blob/master/mingw-w64-headers/include/windows.h" rel="nofollow noreferrer"><code>#include &lt;windows.h&gt;</code></a> to source file <a href="https://github.com/lxqt/qtermwidget/blob/master/lib/BlockArray.cpp" rel="nofollow noreferrer">BlockArray.cpp</a>, I get the following compile error relating to <code>#define BlockSize (1 &lt;&lt; 12)</code> in <a href="https://github.com/lxqt/qtermwidget/blob/master/lib/BlockArray.h" rel="nofollow noreferrer">BlockArray.h</a>:</p>
  
  <pre><code>In file included from E:/git/qtermwidget/lib/BlockArray.cpp:27: 
  E:/git/qtermwidget/lib/BlockArray.h:30:20: error: expected ')' before numeric constant
  30 | #define BlockSize (1 &lt;&lt; 12)
     |                   ~^
  </code></pre>
  
  <p>Why is the addition of the <a href="https://github.com/mirror/mingw-w64/blob/master/mingw-w64-headers/include/windows.h" rel="nofollow noreferrer">windows.h</a> header causing this error?  Assuming I really want to add this header, can I change the <code>#define BlockSize (1 &lt;&lt; 12)</code> in <a href="https://github.com/lxqt/qtermwidget/blob/master/lib/BlockArray.h" rel="nofollow noreferrer">BlockArray.h</a> somehow to not break the compile?</p>