title: constructor call or function-style cast in C++
body: <p>If I have the following c++ code:</p>
  
  <pre><code>class foo{
  public:
      explicit foo(int i){};
  };
  void f(const foo &amp;o){
  }
  </code></pre>
  
  <p>And then I call</p>
  
  <pre><code>f(foo(1));
  </code></pre>
  
  <p>Is <code>foo(1)</code> constructor call or function-style cast?</p>