If you have a templated base class as in the following example:
class A{
public:
A();
virtual ~A();
};
template <class T>
class B : public T
{
public:
B();
virtual ~B();
};
typedef B<A> C;
class D : public C
{
public:
D();
virtual ~D();
};
When you delete an instance of D, will the destructor of A be called?
I'll probably create a test program to find out what happens, but just thinking about it, I wasn't sure what should happen.