title: non-trivial rvalue and lvalue example
body: <p>I am not sure about some rvalue/lvalue non-trvial examples.</p>
  <p>are <code>std::vector&lt;int&gt;({1,2,3})[0]</code> and <code>std::vector&lt;int&gt;()</code> expressions below lvalue or rvalue?</p>
  <p>the code has no actual usage but it surprises me a bit that the code is valid. It looks like they are both lvalues. or not?</p>
  <pre><code>#include &lt;vector&gt;
  
  int main()
  {
      std::vector&lt;int&gt;({1,2,3})[0] = 0;
      std::vector&lt;int&gt;() = {1,2,3}; 
      return 0;
  }
  </code></pre>
  <p>further example...</p>
  <p>The <code>std::vector&lt;int&gt;()</code> expression below is a rvalue. right?
  and how about the expression <code>std::vector&lt;int&gt;({1,2,3})[0]</code>?<br />
  Both the vector object from <code>std::vector&lt;int&gt;()</code> and the int value from <code>...[0]</code> are temporary values. right?</p>
  <pre><code>auto v = std::vector&lt;int&gt;();
  int i = std::vector&lt;int&gt;({1,2,3})[0];
  </code></pre>