implizite Konvertierung von wxString in std::string erzwingen
-
Hallo,
ich bin an vielen stellen auf die Klasse wxString angewiesen möchte aber nicht immer manuell casten sondern dass explizit läuft.
Kann man dafür irgendwie eine cast Operator schreiben. So in etwa:
const wxString operator()(const string &toCast) { return wxString(toCast); } const string operator()(const wxString &toCast) { return toCast.c_str(); }
Danke
-
Typumwandlungs-Funktionen kannst du nur als Member einer der beteiligten Klassen definieren (entweder als Cast-Operator
source::operator target()
oder als Konstruktortarget::target(const source&)
). Da du auf beide beteiligten Klassen keinen Einfluß hast, fällt das leider weg.
(für Alternativvorschläge kenne ich die Klasse wxString nicht gut genug)
-
Danke für die Hilfe, ich kann mit der Antwort leben... dachte nur dass ich dieses manuelle casten irgendwie umgehen kann. Vielleicht im nächsten Standard..
-
Vielleicht geht mit Ableiten von wxString und nem ctor aus und nem conversion operator nach string was, das für den Zweck genügt? Hat wxString ne vtable?
-
Es gibt eine Einstellung in der Setup.h (Name vergessen, USE_STLSTRING oder sowas in der Art).
Wenn du die setzt, wird wxString von std::string abgeleitet. Dann brauchst du nichts zu "konvertieren", dann IST wxString ein std::string.
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.