sagen, dass ich einige Template-Klassen haben:Wie kann festgestellt werden, ob ein Typ zur Kompilierungszeit von einer Vorlagenklasse abgeleitet wird?
template<class T>
class Foo{}
template<class T>
class Bar{}
Nun, ich möchte sicherstellen (zum Zeitpunkt der Kompilierung), dass die in Bar
verwendete Art von Foo
abgeleitet wird. Ich habe bereits this Antwort gefunden, die zeigt, wie man es zur Laufzeit macht, aber ich würde gerne zur Kompilierzeit überprüfen, vielleicht mit static_assert
oder etwas.
Gibt es eine Möglichkeit, dies zu tun?
Es könnte einige [type-traits] (http://en.cppreference.com/w/cpp/types#Type_traits_.28since_C.2B.2B11.29) geben, die Sie verwenden könnten. –
@Someprogrammerdude Ja, ich habe ein bisschen nachgeschaut. is_base_of funktioniert vielleicht, aber ich weiß nur, wie ich es verwenden kann, wenn Foo eine normale Klasse und keine Template-Klasse ist. – Mastrem