Como testar se a classe B é derivada da classe A?

Mais especificamente, digamos que eu tenho um modelo de classe com parâmetrosA eB, e eu gostaria de ter um erro do compilador (quando o modelo estiver sendo instanciado) se B não for derivado de A.

template<class A, class B>
class Foo
{
    // static_assert(B is derived from A)
};

questionAnswers(3)

yourAnswerToTheQuestion