I didn&#x27;t realize statement expressions were a GCC extension.<p>How do you do the safe min&#x2F;max in MSVC? e.g.<p><pre><code>    #define min(a,b) ({ \
      __typeof__(a) _a = (a); \
      __typeof__(b) _b = (b); \
      _a &gt; _b ? _b : _a; \
    })
</code></pre>
works well in GCC&#x2F;Clang. MSVC has decltype(a) _a instead of__typeof__, but I didn&#x27;t know it doesn&#x27;t have blocks-as-expressions.