Alle Werte einer Enumeration auflisten



  • Guten Tag,

    ist es möglich in C++/CLR alle Werte einer Enumeration zu ermitteln? In C# funktioniert dies mit Enum.GetValues(typ). Ich habe etwas gegoogelt und gelesen, dass man auch die Methode Enum::GetValues(typeid) verwenden kann. Komischerweise erhalte ich dadurch aber ein Objekt von Typ Array^ das leer ist.

    Meine Enumeration sieht so aus:

    enum ETileType
    {
        Floor = 0xFFFFFFFF,
        Wall = 0xFF000000,
        Start = 0xFF0000FF,
        Finish = 0xFFFF0000
    };
    

    Mein Aufruf sieht so aus:

    Array^ arr = Enum::GetValues(ETileType::typeid);
    for(int i = 0; i < arr->Length; i++)
    {
      //...
    }
    

    Die Schleife wird kein einziges Mal durchlaufen. Desweiteren wüsste ich auch nicht wie ich aus diesem Array meinen Enumerations-Elemente ermitteln soll.

    Kann mir bitte jemand helfen?
    Danke.



  • Ich vermute, dass du enum class anstelle von enum verwenden musst.



  • Stimmt! Es jetzt funktioniert es. 😃
    Vielen Dank.


Anmelden zum Antworten