#include<functional>#include<iostream>classChoix{public:std::function<void()>callback;};voidmaFonction(){//Fait un truc}intmain(){Choixc;//Attributionc.callback=[&]{maFonction();};//Appel à la fonctionc.callback();return0;}
C'est le cas basique. Disons maintenant que je veuille stocker plusieurs fonctions, mais avec des prototypes différents (une prends en paramètre un int, l'autre rien). Comment je dois procéder ? Est-ce possible ?
Si tu veux les mettre toutes dans le même conteneur, tu fais comment après pour savoir ce qu'il faut lui passer comme paramètre quand tu veux invoquer la fonction?
Dans l'absolu on peut toujours faire du type-erasure pour les stocker, mais vu que tu as besoin de l'info à l'utilisation, ça semble peu adapté…
Si tu veux les mettre toutes dans le même conteneur, tu fais comment après pour savoir ce qu'il faut lui passer comme paramètre quand tu veux invoquer la fonction?
Dans l'absolu on peut toujours faire du type-erasure pour les stocker, mais vu que tu as besoin de l'info à l'utilisation, ça semble peu adapté…
J'ai changer le fonctionnement de mon application afin d'obtenir des fonctions ayant les mêmes protoypes. Je peux donc les stocker dans un seul conteneur. Merci à vous
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte