title: Arguments to variables during definition
body: <p>I'm a C programmer who's trying to take baby steps in C++ and Object oriented programming. I came across the following syntax and I couldn't completely wrap my head around it - why does a variable have arguments here when defining it?</p>
  
  <p><code>unique_ptr&lt;int&gt; myvar(new int);</code></p>
  
  <p>I understand that <code>unique_ptr</code> takes a raw pointer as argument for its constructor, but what's the rationale of this syntax? Is this a syntax introduced later than C++98?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>What I find particularly confusing is having a parentheses immediately following a new variable name. To me - this is how functions are declared. At first I thought the code declares a function named <code>myvar</code> but I knew that's probably wrong.</p>
  
  <p>How's this different from a syntax similar to C or C++98? Is there a name for this type of syntax? </p>