• Ich arbeite jetzt mit der SFML-Bibliothek.
    Aber bei einem Problem mit der würde ich mich an das Forum dort wenden, also ihr müsst für mein Problem nichts von der verstehen:
    Es gibt dort eine Klasse, die hat als Attribute ein enum mit sicher mindestens 60 Möglichkeiten sowie drei Boolean Werte.
    Objekte dieser Klasse würde ich jetzt gerne als Schlüssel einer Multimap benutzen.
    Dafür braucht die Klasse aber einen operator<. Soweit kein Problem, da ich diesen außerhalb der Klasse definieren kann.
    Aber wie kann ich dieses Operator jetzt definieren, damit er enums vergleicht?
    Die Vergleiche werden wie gesagt nur für die multimap gebraucht, das heißt operator< muss nicht unbedingt in einer sinnvollen Reihenfolge anordnen, ich möchte eben aus Laufzeit- und Arbeitseffizienz nicht 60 if-Abfragen reinbringen oder etwas ähnliches.

    Ich hoffe, mir kann jemand helfen.

    Danke
    The User

  • Naja, dafür ist das switch Statement doch super geeignet. Enums sind nichts anderes als ints.
    Und switch ist auf jeden Fall schneller als x if Abfragen, da sie über Sprungtabellen realisiert werden.

  • Kann ich enums vielleicht casten?
    Muss ich mal ausprobieren.
    Sind das wirklich ints? Weil da stehen auch so Sachen wie VALUE1 = 'a'.

    Edit:
    Naja, chars sind ja auch eigentlich ints, und ich kann die wirklich casten, dass ich da nicht draufgekommen bin, danke Wasserleiche, bist der größte in C++!

    Edit2:
    Danke Wasserleiche, es hat geklappt, super, erst ging es nicht, aber ich musste einfach nur den operator< in den namspace sf der Bibliothek packen, dann wurde es gefunden!