Überprüfen Sie boost :: is_base_of . Und wenn Sie es selbst machen wollen, versuchen Sie den Code von Alexeyey von diese Frage :
%Vor%Bearbeiten Das Schreiben statischer Assertion ist keine große Sache, aber hier ist es:
%Vor%Edit2. Und die ganze Arbeit, wenn Sie nicht wissen, wie Sie diese Dinge zusammenführen: Code auf ideone
Was Sie wollen, ist etwas, das SFINAE-Regeln verwendet, um eine Vorlage zu erstellen, die einen Fehler in dem Fall erzeugt, der normalerweise bevorzugt wird, aber auch auf andere Weise erweitert werden kann. Ich glaube, dass Boost möglicherweise bereits eine Vorlage hat, die genau das tut.
Jemand anders hat Ihnen einen Code gegeben. Ich lasse diese Antwort, weil es erklärt, wie der Code funktioniert.
Tags und Links c++ inheritance templates