title: What's this C++ syntax that puts a brace-surrounded block where an expression is expected?
body: <p>I came across this weird C++ program.</p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  int main()
  {
    int a = ({int x; cin &gt;&gt; x; x;});
    cout &lt;&lt; a;
  }
  </code></pre>
  
  <p>Can anyone explain what is going on? What is this construct called?</p>