Les déclarations suivantes doivent faire partie de l'espace de noms
  
sharing dans le fichier 
ownership.hpp :
  
struct Album
{
  std::string artist;
  std::vector<std::string> songs;
};
Album
make_Album( /* ...parameters for artist and songs... */ );
 
Il s'agit d'une part de définir, dans le fichier 
ownership.cpp, cette
  fonction 
make_Album() afin qu'elle renvoie une donnée de type
  
Album dans laquelle auront été 
mémorisées les valeurs des
  paramètres fournis.
Nous supposerons que ces informations peuvent être très volumineuses
  donc sont 
potentiellement coûteuses à recopier.
Il faut alors spécifier les types des paramètres et réaliser l'opération de
  mémorisation en suivant les recommandations qui permettent d'éviter
  les recopies superflues.
D'autre part, il faut réaliser, dans le fichier 
prog_ex0201.cpp, cette
  fonction :
  
void
test_make_Album()
{
  std::cout << "\n~~~~ " << __func__ << "() ~~~~\n";
  // ...
}
  qui sera appelée depuis la fonction 
main().
Elle doit utiliser la fonction 
make_Album() pour initialiser
  une variable de type 
Album mémorisant un nom d'artiste et
  une séquence de quelques titres de chansons de votre choix.
Cette mémorisation ne doit donner lieu à aucune recopie ;
  les données mémorisées n'ont pas à être conservées dans leur éventuel
  emplacement d'origine qui précède leur mémorisation dans la structure.
Des messages dans la console devront ensuite afficher lisiblement les
  valeurs mémorisées dans chacun des membres de cette variable.