title: Boost::typeof compiler problem: mangling typeof, use decltype instead
body: <p>short example: </p>
  
  <pre><code>#include &lt;boost/typeof/typeof.hpp&gt;
  #include &lt;boost/proto/core.hpp&gt;
  using namespace boost;
  
  
  template&lt;class T, class U&gt;
  BOOST_TYPEOF_TPL(T() + U()) add2(const T&amp; t, const U&amp; u)
  {
      return t + u;
  };
  
  int main(){
  
       typedef BOOST_TYPEOF(add2(2.5, 1.5)) type; // get type -&gt; works
  
       BOOST_STATIC_ASSERT((is_same&lt;type, double&gt;::value)); // check if double -&gt; no error -&gt; double
  
       double xxx = add2(1.5,1.5); // cause the problems
          return 0;
   }
  </code></pre>
  
  <p>When i try to compile this i become a error like:</p>
  
  <p>g++-4.3: sorry, unimplemented: mangling typeof, use decltype instead </p>
  
  <p>g++-4.2: <code>internal compiler error: in write_type, at cp/mangle.c:1648
       Please submit a full bug report,
       with preprocessed source if appropriate.
       See &lt;URL:http://gcc.gnu.org/bugs.html&gt; for instructions.
       For Debian GNU/Linux specific bug reporting instructions,
       see &lt;URL:file:///usr/share/doc/gcc-4.2/README.Bugs&gt;.</code></p>
  
  <p>gcc version 4.3.2 (Debian 4.3.2-1.1)
  gcc version 4.2.4 (Debian 4.2.4-6)</p>
  
  <p>Where is the Problem or what i do wrong?a</p>