• [^] # Re: plop

    Posté par (site web personnel) . En réponse au journal Retour aux sources. Évalué à 3.

    Exactement. Exemple:

    enum MySuperEnum {
    #define X(NAME, VALUE, ACTION) SuperEnum_##NAME = VALUE,
    #include "super_values.def"
    #undef X
    };
    /* ... Plus loin ... */
    vod MyClass::maFunction(MySuperEnum foo) {
     switch (foo) {
    #define X(NAME, VALUE, ACTION) case SuperEnum_##NAME : ACTION; break; 
    #include "super_values.def"
    #undef X
     }
    }

    Le premier bout de code est dans un header mais le tout fini dans la même translation unit

    Le fichier super_value.def ressemble à ça:

    X(Addition, 13, Val0 = Val1 + Val2)
    X(Division, 21, Val0 = Val1 / Val2)
    X(SelfAddition, 42, Val0 += Val1)
    // ...

    (possiblement auto-généré)