altes enum mit angabe des underlying data types



  • hallo leute

    ist folgendes vom standard abgedeckt ?

    struct flags
    {
       enum : int
       {
          value1 = 1, value2 = 2, value3 = 4, value4 = 8
       };
    };
    

    in VC++ 2015 wird es anstandslos angenommen, aber was sagt der standard dazu ?

    Meep Meep



  • Welchen Teil davon meinst du genau? Das angeben eines Typs hinter dem Doppelpunkt? Das gibt es seit C++11 als Strongly-typed Enums. Oder das dein enum keinen Namen hat? Das gibts schon länger und ist auch erlaubt.



  • ersteres.

    enum : int
    

    ist das laut standard erlaubt ? ist ja kein enum class. deshalb bin ich mir da nicht so sicher

    Meep Meep


  • Mod

    Ja, das ist erlaubt. Der sog. enum-key ist entweder enum , enum class oder enum struct . Die enum-base ist in diesem Fall : int . Beide sind beliebig kombinierbar.


Log in to reply