[C++] Adresse eines freien Template-Operators nehmen
Verfasst: 23.02.2017, 11:02
Moin,
komisches Compilerproblem, an dem der GCC5.4 scheitert, aber Visual Studio seltsamerweise keinen Ärger macht. Es geht darum, meine Matheklassen-Operatoren dem AngelScript zu melden, damit ich Vektor/Matrix-Operationen im Skriptcode machen kann. Das minimale Beispiel sieht so aus:
Wie kriege ich dem Compiler beigebogen, dass ich den freien Operator '-' mit der Spezialisierung auf float brauche? Das hier ist übrigens eine reduzierte Version eines Makros, mit dem Angelscript sich dann den Funktionszeiger wegspeichert. Visual Studio scheint sogar ohne die <float>-Spezialisierung den richtigen Operator herauszufinden, aber mit Spezialisierung habe ich es noch nicht prüfen können.
komisches Compilerproblem, an dem der GCC5.4 scheitert, aber Visual Studio seltsamerweise keinen Ärger macht. Es geht darum, meine Matheklassen-Operatoren dem AngelScript zu melden, damit ich Vektor/Matrix-Operationen im Skriptcode machen kann. Das minimale Beispiel sieht so aus:
Code: Alles auswählen
template<typename T>
struct Bla {
friend Bla<T> operator - (const Bla<T> b) { return b; }
};
typedef Bla<float> BlaF;
int main(int argc, char ** argv) {
auto f = static_cast<BlaF (*)(const BlaF&)> (operator - <float>)
}