title: How to create type which can be returned through another type implicitly in Swift?
body: <p>In C++ we can model a type like below,</p>
  <pre class="lang-cpp prettyprint-override"><code>struct Q{};
  struct P{
       P(Q q){}
  };
  P fun(){return Q();} // implicitly call P(Q()) as return result
  </code></pre>
  <p>How to do that in Swift?</p>
  <pre class="lang-swift prettyprint-override"><code>struct Q {}
  
  struct P {
       init(_ q: Q){}
  }
  var p : P {Q()} // Cannot convert return expression of type 'Q' to return type 'P'
  
  var p : P {P(Q())} // OK!
  </code></pre>