2015-09-05 1 views
1

Je suis assez confus par ce paradoxe:En-têtes GCC ext - documentation à jour?

  1. GCC ext apparently contains lots of broadly useful functionality. Par exemple, ext/pb_ds/assoc_container.h vous permet build an order statistic tree just by specifying particular template arguments, et ext/numeric contient l'algorithme power(..) pour O (lg N) l'exponentiation d'un objet générique à une puissance entière non nulle - cet algorithme est écrit à partir de zéro tout le temps. Il y a aussi la structure des données sur corde, les algorithmes pour l'échantillonnage aléatoire, et bien d'autres. Pas des choses que vous utiliseriez tous les jours, mais certainement des choses qui seraient utiles tous les deux ans.

  2. Presque personne ne semble les utiliser. Il y a très peu de discussion sur le web. Il y a quelques rapports de bogue, et des messages comme this one suggérant soit que ces choses sont boguées et non maintenues, soit qu'il n'y a pas de guide définitif sur la façon de les utiliser correctement.

Maintenant, en essayant de trouver la documentation, je saisis gcc "ext" dans Google, et obtenir https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/ comme le premier résultat. Aller à Examples of Associate Containers m'amène à une autre table des matières, mais en cliquant sur par exemple. le lien vers basic_set.cc me donne une page de 404. À ce stade, je ne suis même pas sûr que ce code ait reçu assez de tests pour pouvoir compter sur lui pour des applications sérieuses.

Existe-t-il une documentation appropriée pour quand et comment utiliser #include <ext/numeric> et autres? Ou au moins des exemples et des estimations de complexité asymptotique?

+0

Il y a un miroir sur github; Vous pouvez trouver les exemples de structures de données basées sur des règles ici: https://github.com/gcc-mirror/gcc/tree/master/libstdc%2B%2B-v3/testsuite/ext/pb_ds/example. L'URL que vous avez trouvée sur Google me semble ne pas être à jour. celui-ci fonctionne https://gcc.gnu.org/onlinedocs/libstdc++/manual/policy_data_structures_using.html#pbds.using.examples mais les fichiers ne sont pas liés (cependant, ils sont dans le répertoire sur github.) Hope that helps a bit. – rici

Répondre

1

Puisqu'il semble que vous avez trouvé un défaut dans la documentation, je vous suggère d'envoyer un courriel à [email protected] pour vous abonner à la liste de diffusion. J'ai été capable de trouver un miroir pour le libstdc++ test suite sur Github, qui contient les exemples que vous voulez. Si vous recherchez une documentation pour ext_numerics, c'est à l'adresse gcc.gnu.org/onlinedocs/libstdc++/manual/ext_numerics.html.

+0

À la personne qui a voté pour supprimer ma réponse, pourquoi ne faites-vous pas attention à ce que le PO a un problème? J'ai posté un lien de travail pour le fichier qu'ils cherchaient, ainsi que la documentation pour l'en-tête spécifique. – user5302656