J'utilise une classe "événement" C++ qui permet d'appeler un ou deux arguments dans les délégués.Spécialisation partielle et spécialisation complète requise <> après la définition de type
Dernièrement, j'ai ajouté le support pour les délégués qui ne nécessitent pas des arguments, mais quand je specialze la classe à utiliser aucun argument de modèle, je suis toujours nécessaire d'ajouter <> afther la définition de classe.
Exemple d'utilisation avec un/deux arguments:
class Example
{
public:
event<int> SingleArgEvent;
event<int, int> DoubleArgEvent;
};
Et ici le pas d'exemple l'argument:
class Example
{
public:
event<> NoArgTest1; // compiles just fine
event NoArgTest2; // gives me C2955: 'event' : use of class template requires template argument list
};
Comme il fonctionne avec les parenthèses, je ne vois pas une raison pour laquelle ils devraient être là. est ici le code de spécialisation de classe:
class null_typelist {};
/** event template **/
template <class Targ1 = null_typelist, class Targ2 = null_typelist>
class event : public event2_base<Targ1, Targ2>
{
};
template <class Targ>
class event<Targ, null_typelist> : public event1_base<Targ>
{
};
template <>
class event<null_typelist, null_typelist> : public event0_base
{
};
L'idée était d'avoir le même nom de classe "événement", peu importe la quantité d'arguments de modèle. Avec un typedef qui s'en va. Je suppose qu'il n'y a pas de solution de contournement? – Stormenet