Ich habe ein seltsames Verhalten mit einem Operator Überladen in C++. Ich habe eine Klasse, und ich muss prüfen, ob ihr Inhalt größer oder gleich einem langen Double ist. Ich habe den >=-Operator überladen, um diese Prüfung durchzuführen, meine Deklaration ist wie folgt:
bool MyClass::operator>=(long double value) const;
Ich muss sagen, dass ich auch einen cast-to-long-double-Operator für meine Klasse habe, der nur unter bestimmten Bedingungen ohne Ausnahmen funktioniert. Wenn ich nun diesen Operator verwende, beschwert sich der Compiler, dass es eine zweideutige Verwendung von operator>= gibt und die Alternativen sind:
- Meine.
- Die eingebaute
operator>=(long double, int)
.
Wie zwinge ich nun das Programm, meinen Operator zu verwenden?