struct S { int a; char b[8]; }; template class SB { public: operator bool() { return true; }; S x; }; class T : public SB<0> {}; template class m1 { public: m1(TT) {} void m2() {}; }; class U { public: U(int, T c) { auto v = m1([] {}); if (c) v.m2(); } }; void f() { T c = {}; U(0, c); }