title: Why is the result of "decltype(i+j)" not an rvalue reference?
body: <p>I'm trying to come up a simple example for an operation that results in a rvalue.</p>
  
  <p>This test case should have worked, but surprisingly (to me), the result of adding two <code>int</code>s is not an rvalue (reference). What am I missing here?</p>
  
  <pre><code>void test(int i, int j)
  {
      // this assert should pass, but fails:
      static_assert(std::is_same&lt;decltype(i + j), int&amp;&amp;&gt;(), "i + j should be a rvalue"); 
      // this assert passed, but should fail:
      static_assert(std::is_same&lt;decltype(i + j), int&gt;(), "this assert should fail...");
  }
  </code></pre>