#include template struct ATB { int data; ATB() : data(0) {} }; template class A : public ATB { public: static DerivedType const DEFAULT_INSTANCE; }; template const DerivedType A::DEFAULT_INSTANCE; class B : public A { }; int main() { B b; // If this if-block is removed then GDB shall // not infinitely recurse when trying to print b. return 0; // marker }