title: Use cases for std::add_const and similar
body: <p>Some type transformations in <code>&lt;type_traits&gt;</code> can also be expressed using core language syntax (e.g. <code>std::add_const&lt;T&gt;::type</code> is/seems equivalent to <code>const T</code>). Dtto for <code>std::add_lvalue_reference</code>, and perhaps others. What is the use for these type traits?</p>
  
  <p>I fully understand the standard would be providing an "incomplete toolbox" without them, and I can imagine use in a meta way, something like this:</p>
  
  <pre><code>template&lt;typename In, template &lt;typename&gt; class Modifier&gt;
  struct Apply {
    typedef typename Modifier&lt;T&gt;::type Out;
  };
  
  Apply&lt;int, std::add_const&gt;
  </code></pre>
  
  <p>Are there any other use cases for these traits which can be expressed syntactically, or are they just included "out of a sense of completeness" and for the occasional meta-use?</p>