Bonjour,

j'ai un objet map qui me donne diverses informations. Une de ces informations est une largeur que je récupère grâce au code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
map->GetTileset(i)->GetTileWidth()
Je voulais raccourcir ce code avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  auto tileset = make_unique<const Tmx::Tileset>;
  tileset = map->GetTileset(i);
Mais j'obtiens l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
error: cannot convert ‘const Tmx::Tileset*’ to ‘std::unique_ptr<const Tmx::Tileset, std::default_delete<Tmx::Tileset> > (*)()’ in assignment
   tileset = map->GetTileset(0);
Le code suivant marche sans problème

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  const Tmx::Tileset* tileset = new const Tmx::Tileset;
   tileset = map->GetTileset(i);
Du coup, je me demande si on peut convertir un pointer en unique_ptr, ou si il vaut mieux passer par new dans le cas présent.