Angenommen, ich möchte die Einschränkung erzwingen, dass der übergebene Template-Parameter ein Kind von Foo ist.
Gibt es eine Möglichkeit, dies durch Typeigenschaften durchzusetzen? Ein Kompilierungszeit static_assert
Fehler wäre großartig.
Machen Sie im folgenden Code eine zweiteilige (separate) Frage.
My_Limited_Template<Bar>
zu kompilieren. My_Limited_Template<TBar>
zu kompilieren. BEARBEITEN
Ich entschuldige mich für die schlechte Benennung: TBar
und TBaz
sind beabsichtigt, um nicht-Vorlage-Klassen zu Zwecken zu sein. Ich habe T einfach vor die Namen angehängt, um aus den Klassen in Teil 1 zu disambiguieren.
CODE
%Vor% Ich nehme an, dass Sie bei der Definition von TBar
und TBas
einen Fehler gemacht haben, überprüfen Sie, ob meine Änderung korrekt ist.
Tags und Links c++ c++11 templates typetraits