Wie kann ich enable_if verwenden, um die folgende Spezialisierung für jeden Fließkommatyp (is_floating_point) zuzulassen?
%Vor%BEARBEITEN: Hier ist eine Antwort, die ich gefunden habe, die sich von den unten aufgeführten unterscheidet ...
%Vor%Wie die folgenden Poster sagen, ist die Verwendung von enable_if möglicherweise nicht ideal für dieses Problem (es ist sehr schwer zu lesen)
Verwenden Sie das Überladen anstelle der expliziten Spezialisierung, wenn Sie das Verhalten für einen spezifischeren Parametertyp verfeinern möchten. Es ist einfacher zu verwenden (weniger Überraschungen) und leistungsfähiger
%Vor% Ein Beispiel, das SFINAE ( enable_if
) verwendet, wie Sie scheinen, neugierig zu sein
Viel hässlicher natürlich. Es gibt keinen Grund, enable_if
hier zu verwenden, denke ich. Es ist Overkill.
Sie können auch einen booleschen Template-Standardparameter wie diesen verwenden:
%Vor%Tags und Links c++ c++11 boost template-specialization tr1