Bonjour à vous !

Que me "coûte" un héritage sur une classe, d'une structure composée de quelques types primitifs (ça à peut-être une importance)

J'essais en fait de composer les membres d'une classe avec des templates.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//==============================================================================
enum ValueTag : uint8_t
{
    POS = 0,
    SIZE,
    SCALE,
    TEXTURE
};
//------------------------------------------------------------------------------
enum class TextureTag;
//==============================================================================
template<uint8_t value_tag> struct Value {};
//------------------------------------------------------------------------------
template<> struct Value<POS> { int posx; int posy; };
template<> struct Value<SIZE> { int width; int height; };
template<> struct Value<SCALE> { uint8_t scale; };
template<> struct Value<TEXTURE> { TextureTag texture_tag; };
//==============================================================================
template<uint8_t... TagTail> 
struct Entity : public Value<TagTail>... 
{};
//==============================================================================
int main()
{
    Entity<POS, SCALE, TEXTURE> entity;
    entity.posx = 3;
    entity.scale = 3;
    ...
    return 0;
}
//==============================================================================
C'est sans doute plus onereux, j'imagine que l'accès aux membres passe par la classe de base puis par l'hérité en question.
J'espere me tromper !