3 Stimmen

C++-Konvertierungsoperator zwischen Typen in anderen Bibliotheken

Der Einfachheit halber möchte ich zwischen zwei in anderen Bibliotheken definierten Typen casten können. (Genauer gesagt, QString aus der Qt-Bibliothek und UnicodeString aus der ICU-Bibliothek). Im Moment habe ich Dienstprogrammfunktionen in einem Projektnamensraum erstellt:

namespace MyProject {
    const icu_44::UnicodeString ToUnicodeString(const QString& value);
    const QString ToQString(const icu_44::UnicodeString& value);
}

Das ist alles schön und gut, aber ich frage mich, ob es einen eleganteren Weg gibt. Im Idealfall würde ich gerne in der Lage sein, zwischen ihnen mit einem Cast-Operator zu konvertieren. Ich möchte jedoch die explizite Natur der Konvertierung beibehalten. Eine implizite Konvertierung sollte nicht möglich sein.

Gibt es eine elegantere Möglichkeit, dies zu erreichen, ohne den Quellcode der Bibliotheken zu ändern? Vielleicht mit einer Syntax für Operatorüberladungen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X