OVH Cloud OVH Cloud

template et taille d'un buffer de char

2 réponses
Avatar
phil
Bonjour,

J'essai d'encapsuler une structure C, qui a une taille prédéfinie.
Je dois définir un char buffer[Une Taille] (un new est impossible).
Je voudrais définir 'Une Taille' à la déclaration, je croyais donc
pouvoir faire :

template <typename MAX_SIZE>
class toto
{
public:
struct msgbuf
{
char buffer[MAX_SIZE];
};
};

Mais j'obtiens l'erreur : error: syntax error before `]' token

Le but final était de pouvoir faire :
toto<255> t;
pour obtenir un équivalent de
class toto
{
public:
struct msgbuf
{
char buffer[255];
};
};

Je vois bien une solution avec les macros, mais n'y aurait il pas une
autre solution ?

Merci.
--
Philippe Leroux

2 réponses

Avatar
Vincent Lascaux
template <typename MAX_SIZE>


Ici tu indique que MAX_SIZE sera une classe.
Remplace la ligne par

template <unsigned int MAX_SIZE>

--
Vincent

Avatar
phil
template <typename MAX_SIZE>



Ici tu indique que MAX_SIZE sera une classe.
Remplace la ligne par

template <unsigned int MAX_SIZE>

Merci beaucoup.


--
Philippe Leroux