Hello,
Un autre probleme dans la meme lignee: ma librairie est aussi appelee depuis l'exterieur avec matlab.
Je vous passe les details, mais en gros je cree un fichier .cpp qui definit une fonction mexFunction.
Dans ce wrapper se trouve "marshalling" si on veut bien des donnes matlab en donnees C++, puis l'appel de la fonction C.
Typiquement les donnes recuperee de matlab on le type "static" void* et on a un parametre (classId) qui nous donne le type "dynamic" des donnees (ie SINGLE, DOUBLE, INT32, etc.)
A nouveau j'ai une repetition de code pas tres productive pusique je dois faire a chaque fois:
1 2 3 4 5 6
| if (classId == SINGLE)
toto_s((float*) data,...);
else if (classId == DOUBLE)
toto_d((double*) data,...);
else
afficher erreur type incompatible... |
et ce pour chaque fonction.
Est-il possible a l'aide d'une macro de simplifier l'appel, ideallement je n'aurais plus qu'a faire:
FUN_CALL(toto, (TYPE*) data);
Ca serait super!
Merci,
Gregoire
Partager