title: trick question regarding declaration syntax in C++
body: <p>Have a look here:
  In the following code, what would be the type of b?</p>
  
  <pre><code>struct A {
      A (int i) {}
  };
  
  struct B {
      B (A a) {}
  };
  
  int main () {
      int i = 1;
      B b(A(i)); // what would be the type of b
      return 0;
  }
  </code></pre>
  
  <p>I'll appreciate it if anybody could explain to me thoroughly why would such syntax exist :)</p>
  
  <p>Thanks.</p>