Je crée un système d'événements. Il est basé sous boost :: signals. Pour faciliter le travail, j'utilise typedef pour les signatures de fonction. Tout est OK jusqu'à ce que j'ai besoin de créer une nouvelle méthode système de l'événement. Je dois créer le typedef dynamiquement sur un type donné à la fonction de modèle. Le problème est le nom de typedef.Création dynamique de typedef
Certains pseudocode J'ai:
template<typename EventType>
void create(const string &signalName)
{
typedef EventType signalName;
// ...
}
Est-il possible de faire une telle typedef (leur nom) avec une chaîne passée ou données ou autre chose? Je ne veux pas que l'utilisateur s'en soucie.
UPD: Alors, j'ai une liste typedefs des signatures de fonction - événements. J'ai une fonction de template pour connecter des slots, par exemple. Je ne veux pas forcer l'utilisateur à entrer à chaque fois la signature par ses mains (l'utilisateur est le programmeur qui utilisera le système d'événements). Donc j'utilise simplement mon typedefs de l'espace de noms spécial dans l'argument du template.
Supposons une telle chose était possible. Comment envisagez-vous * d'utiliser * ce typedef une fois que vous l'avez créé? Raconter votre utilisation prévue pourrait aider les gens à penser à des solutions alternatives. –
@ rob-kennedy mis à jour – Ockonal
Merci, mais cela n'a pas vraiment répondu à ma question. Je voulais dire que vous devriez montrer comment vous appelez cette fonction 'create', et ensuite montrer comment utiliser le typedef qui en résulte. Montrez un exemple de code pour savoir comment utiliser une telle fonctionnalité. –