にゃははー

はへらー

4.4からのdecltypeでのICE

template < typename T >
int f( const T &, const char * );

template < typename T >
decltype( f( T(), "" ) ) g( const T &t );

void h()
{
    g( 0 );
}

https://ideone.com/qkxJ1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47488
が死ぬ。どうやらdecltype中でstring literalsを使用するとマングリングがうまくいかんらしい…?

4.6ならnullptrがあるのでそれを使用するのがベスト