// Origin: Wolfgang Bangerth int i = 1; struct Base1 { int local1; }; struct Base2 { int local2; }; template class Derived; template <> class Derived<1> : public Base1, public Base2 {}; template class FinalClass : public Derived { public: FinalClass () { if (&local1 != &local2) i = 0; } }; int main () { FinalClass<1> a1; return i; }