Bonjour à tous,

Je me demandais s'il était possible de savoir le nombre de paramètre réellement passé à mon constructeur de classe (sans passé par les va_arg, va_list,... du C) qui a des "template par défaut" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
template <typename T1, typename T2 = void*, typename T3 = void*>
class MA_CLASSE
{
MA_CLASSE(T1 _p1, T2 _p2 = (void*)0, T3 _p3 = (void*)0)
        : p1(_p1),  p2(_p2),  p3(_p3)
};
 
// exemples d'appel :
MA_CLASSE<int> c1; // un seul paramètre fourni
MA_CLASSE<int, float> c2; // 2 params
MA_CLASSE<int, flat, int> c3; // 3 paramètres
Je sais que ce n'est peut être pas très élégant de mettre des "void*" en C++ mais je n'ai pas trouvé d'autre solution pour pouvoir instancier ma classe template avec un ou plusieurs types.

Voilà, Merci à vous