What is the bug in this CRTP base, and what does it cause?template <class D> struct Counter { static int count; Counter() { ++count; } }; template <class D> int Counter<D>::count = 0; struct A : Counter<A> {}; struct B : Counter<B> {};