static_cast für enums



  • Hallo!

    Wie kann ich den static_cast für enums überladen? AFAIK sollte das doch so gehen, wenn ich das enum enumName in einen String konvertieren möchte:

    enumName::operator std::string() const{ }
    

    Mein GCC schluckt das aber nicht, sondern sagt:

    error: expected operator before 'std'.


  • Mod

    enums sind keine Klassen und haben keine Member, also auch keine Konvertierungsoperatoren. Die einzige Möglichkeit, für sie zusätzle implizite Konvertierungen einzubauen, besteht in einem entsprechenden Konstruktor der Zielklasse. Auf std::string hast du nat. keinen Zugriff, das geht also nicht. Damit bleibt dir nur der Umweg über eine ganz normale benannte Funktion.


Anmelden zum Antworten