Est-il lisible de la mise en œuvre de la STL?

Je suis sur Linux; en regardant la STL en-têtes; ils sont vraiment vraiment compliqué.

Est là, quelque part, une version plus petite de la STL qui a des fonctionnalités de base de la STL, mais en réalité c'est lisible?

Merci!

  • Pourquoi avez-vous besoin qu'elle soit lisible? Vous n'êtes pas censé avoir besoin de lire le code source. Il est documenté de sorte que vous pouvez utiliser la bibliothèque sans avoir à lire la mise en œuvre
  • Je suis en train d'écrire certains modèles de mon propre. Je veux comprendre comment la STL est mis en œuvre pour apprendre de leurs compromis.
  • C'est souvent la peine de jeter un regard sous les couvertures à des fins éducatives. Pas tous les regarder à l'intérieur d'une boîte noire pour les sournois encapsulation-la rupture des raisons. 🙂
  • Mais la plupart d'entre eux sont. De toute façon, il y a peu à apprendre de lui. Code STL n'est pas conçu pour être 1) nice, ou 2) portable. Il est généralement conçus pour des compilateurs et des plates-formes, ce qui signifie qu'il peut s'en tirer avec tous la mise en œuvre spécifique de hacks que votre code ne doit pas compter. Il y a beaucoup à apprendre de la STL, mais de vous apprendre à partir de l'interface et la documentation et la conception sous-jacente, pas la mise en œuvre.
  • Je pense que le MSVC version, par exemple, pourrait être considéré comme tout, mais lisible :>
  • Je suis en désaccord; comme vous acquérir de la compréhension du langage C++, la mise en œuvre de la STL est tout à fait compréhensible. Il faut juste "un tout" pour que cela se produise. 😮
  • Il n'existe pas de "la mise en œuvre de la STL".
  • Je ne suis pas entièrement sûr de savoir comment répondre qui?
  • Je voulais dire il n'est pas "la" mise en œuvre - il y a beaucoup, certains plus ou moins lisible que les autres.
  • Juste parce qu'il est possible d'apprendre la langue (et la patience) de comprendre un STL mise en œuvre, il n'est pas automatiquement que vous auriez du apprendre quoi que ce soit à partir de l'exercice. Et tout comme avec pertinence, il n'y a aucune garantie que ce que vous "apprendre" est vraiment bon. La plupart des gens qui vont sur ce chemin immédiatement commencer à utiliser le trait de soulignement suivies par des lettres majuscules pour l'ensemble de leurs paramètres de modèle, parce que c'est ce que la bibliothèque standard n'........ Et bien sûr, ce n'est pas légal, car ces noms sont réservés pour la mise en œuvre.
  • Si vous voulez apprendre les détails concrets de C++, de lire, pas un STL mise en œuvre
  • Des règles différentes s'appliquent pour la bibliothèque standard et pour le code utilisateur. En essayant d'imiter la bibliothèque standard lors de l'écriture de code d'utilisateur est généralement une Mauvaise Idée. Pour des raisons de portabilité, la conformité aux normes raisons et pour des raisons de lisibilité.
  • Je sais qu'. 😮 @jalf.com: je voulais dire que la compréhension d'un STL mise en œuvre est un effet secondaire d'une profonde compréhension du langage C++ et la façon dont il est censé être utilisé. La compréhension n'est pas seulement le "comment", mais aussi le "pourquoi". Comme je l'ai mentionné dans mon post ci-dessous, la compréhension suit seulement après avoir pris connaissance des objectifs, la justification et les avantages et les limites du langage (C++).
  • Il ne faut pas se laisser distraire. L'OP veut lire son STL mise en œuvre comme un exercice d'apprentissage. Donc, pour les fins de cette question, la lecture et la compréhension d'un STL mise en œuvre n'est pas un effet secondaire. En dehors de cela, vous n'êtes pas susceptibles de connaître le "pourquoi" en lisant le code source. En prenant mon exemple ci-dessus, encore une fois, la lecture de la source ne vous raconte pas le "comment": (types de modèle devrait commencer avec un trait de soulignement suivie en lettre capitale), mais elle ne vous dit pas pourquoi: (car ces noms sont réservés pour la mise en œuvre, afin de ne pas risque de collisions avec le nom défini par l'utilisateur)
  • Coup de pouce. Si elle est toujours assez compliqué.

InformationsquelleAutor anon | 2010-01-24