title: What does passing curly braces as a function argument mean?
body: <p>In C++17 code, I sometimes see something like:</p>
  <pre><code>void myfunction(const std::string&amp; arg1, int arg2) {
    //...
  }
  
  void otherfunction() {
    myfunction(&quot;a&quot;,1);
    myfunction({},2);
    myfunction(&quot;b&quot;,{});
    myfunction({},{});
  }
  </code></pre>
  <p>What do the empty curly brace arguments means?</p>
  <p>I found that I get an empty string and 0 integer, so I suppose it's some kind of default value.</p>