1 2 3 4 5 6 7 8 9 10
template <bool, int> struct X {}; template <bool C> struct X<C,1> { typedef double* type; type foo () const; }; template <bool C> typename X<C,1>::type X<C,1>::foo () const {}