template<int size> class A { public: A<size> operator&(const A<size>&); }; int main() { using A0 = A<0>; A0 a; A0 b; A0 c = a & b; return 0; }