Ist es möglich, C ++ - Klassenoperatoren im statischen Kontext zu überladen? z.B.
%Vor%Wenn Sie nach Metaprogrammierung mit dem integrierten Operator suchen: So etwas ist nicht möglich - die integrierten Operatoren arbeiten mit Laufzeitwerten und nicht mit Kompilierzeitwerten.
Sie können stattdessen dafür boost::mpl
verwenden Verwenden Sie die integrierten Operatoren, verwenden Sie ihre Vorlagen, wie at
für op[]
, plus<a, b>
für op+
usw.
Ich glaube nicht, dass es möglich ist, obwohl ich an dieser Front falsch liegen könnte. Ich würde gerne fragen, warum Sie das tun sollten. Anstatt Operationen für eine Klasse anstelle von Instanzen auszuführen, benötigen Sie vielleicht nur eine Instanz in Ihrer gesamten Anwendung? In diesem Fall sollten Sie wahrscheinlich das Singleton-Muster verwenden.
Wenn Sie meinen, der Operator operiert in einer Klasse, die Nein. Das macht keinen Sinn, es ist so, als würde man operator +
may operator auf int
oder double
sagen. Operatoren sind syntaktische Zucker für Funktionen und sie arbeiten auf Variablen (Werte) und nicht auf Typen.
Nein, Operatoren können keine statischen Mitglieder einer Klasse sein. Verwenden Sie stattdessen eine reguläre statische Funktion.
Tags und Links c++ indexing operator-overloading static