When should we use parenthesis ( ) vs. initializer { } syntax to initialize objects in C++11?
<p><strong>Updated</strong></p>

<p>I have gone through links (such as <a href="https://stackoverflow.com/questions/9976927/when-to-use-the-brace-enclosed-initializer">When to use the brace-enclosed initializer?</a>) on when should I use use <code>{}</code> brace initialization, but information is not given on when we should use parenthesis <code>( )</code> vs. initializer <code>{ }</code> syntax to initialize objects in C++11/14? What standard practices suggest to use <code>()</code> over <code>{}</code>?</p>

<p>In rare cases, such as <code>vector&lt;int&gt; v(10,20);</code> or <code>auto v = vector&lt;int&gt;(10,20);</code>, the result is a <code>std::vector</code> with 10 elements. If we uses braces, the result is a <code>std::vector</code> with 2 elements. But it depends on the caller use case: either he/she want to allocate vector of 10 elements or 2 elements?</p>