title: C++ Types Impossible to Name
body: <p>While reading <a href="http://en.wikipedia.org/wiki/Decltype" rel="noreferrer">Wikipedia's page on decltype</a>, I was curious about the statement,</p>
  
  <blockquote>
    <p>Its [decltype's] primary intended use is in generic
    programming, where it is often
    difficult, <strong>or even impossible</strong>, to name
    types that depend on template
    parameters.</p>
  </blockquote>
  
  <p>While I can understand the <em>difficulty</em> part of that statement, what is an example where there is a need to name a type that cannot be named under C++03?</p>
  
  <p><strong>EDIT</strong>: My point is that since everything in C++ has a declaration of types.  Why would there ever be a case where it is impossible to name a type?  Furthermore, aren't trait classes designed to yield type informations?  Could trait classes be an alternative to <code>decltype</code>?</p>