Je souhaite appeler plusieurs fois des fonctions avec une API C du type

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
void AddPolygon1(int nb_points, Point * points);
void AddPolygon2(int nb_points, Point * points);
...
Comme je souhaite faire des tests j'ai besoin de construire des polygones et j'ai écrit le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
typedef std::vector< Point > Points;
Points MakeRectangle(double dx, double dy) { ...}
...
AddPolygon1(4u, &(MakeRectangle(200.0, 100.0).front()));
MakeRectangle va créer un temporaire mais quand sera détruit ce temporaire ? Est-ce que dans l'appel à AddPolygon1 le pointeur sur "points" est ok ou est-ce que l'objet a déjà été détruit ?
L'alternative serait d'écrire des wrapper autour de chacune des fonctions de l'api C mais je me demandais si je pouvais m'en passer.