Ja. Erstellen Sie die Funktionsvorlagen, und aktivieren Sie sie dann unter Verwendung von std::enable_if
:
Die Lösung von die andere Antwort ist möglicherweise nicht durchführbar, wenn die Klasse groß ist und viele Funktionen benötigt unabhängig von T
. Sie können dies jedoch lösen, indem Sie von einer anderen Klasse erben, die nur für diese speziellen Methoden verwendet wird. Dann können Sie nur diese Basisklasse spezialisieren.
In C ++ 14 gibt es bequeme Typ-Aliase, so dass die Syntax folgendermaßen aussehen kann:
%Vor%Und C ++ 17, noch kürzer:
%Vor%Tags und Links c++ template-meta-programming