Bonjour à tous,

Je voudrais créer une fonction renvoie un polygone (de type POLYGONE) prenant en argument le nombre de sommets et les coordonnees de ces sommets. Ces coordonnees sont en réalité des objets que j'ai créés (class COORDONNEES{protected:double x,y,z;public: ... }.
J'ai donc déclaré ma fonction comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
friend POLYGONE creerPolygone(unsigned int nombre_sommets, ...);
Mais mon compilateur (gcc) me renvoie le warning suivant sur la ligne d'appel de la fonction :

warning: cannot pass objects of non-POD type `class COORDONNEES' through `...'; call will abort at runtime
et ce warning :

warning: cannot receive objects of non-POD type `class COORDONNEES' through `...'; call will abort at runtime
sur la déclaration de la fonction.

J'en déduis donc que les variadics n'acceptent que les type standards en argument.
Existe-t-il malgré tout une solution pour passer en argument des types personalisés ou dois-je absolument passer les coordonnees de mes sommets sous forme de double. (en écrivant : creerPolygone(4,0,0,0,1,0,0,1,0,1,0,0,1) pour créer un carré!

Merci d'avance!

Spartan03