La conversion de std::list pour C amicale type

Ce qui est la façon la plus élégante pour retourner un std::list objet à partir d'un partage lib fonction (mis en œuvre par le code C++) pour un C consommateur? Je sais que pour std::vector, nous pouvons retourner à l'adresse du 1er élément du vecteur et ont les consommateurs de la traiter comme un tableau, mais std::list est mis en œuvre comme un lis.

  • Le standard C++ garantir qu'un std::vector objet du premier élément est le premier élément d'une matrice, et peuvent être traités en tant que tels?
  • Oui............
  • malgré la croyance populaire, de la 1998 la norme C++ ne pas garantie que std::vector est contiguë. Toutefois, la Norme n'certainement dire et (à un certain degré) supposons que c'est le cas. Ce problème est résolu en C++03. Voir (stackoverflow.com/questions/247738/...) et (herbsutter.wordpress.com/2008/04/07/...) pour plus de détails.
  • merci!