// Build don't link:

template <class T = int>
struct A { const T x; A() : x(0) { } A(T x) : x(x) { } }; 

template <class B>
void func () { B y; y = B(); } // ERROR - can't use default assignment

int main (void) { func< A<> >(); } // ERROR - instantiated from here
