2009-11-19 3 views
6

Ich hatte gerade ein höllisches Projekt mit einfachen Operationen auf C++, und als ich mit dem Projekt fast fertig war, fand ich heraus, dass all diese dummen Aufgaben nur einen Teil des Boosts erforderten. Das war ziemlich frustrierend und ließ mich fragen, wie viele dieser lästigen Probleme mit einer einzigen Funktion der Boost-Bibliotheken gelöst werden konnten.Boost Spickzettel

Die Frage ist also, gibt es einen Spickzettel für die Boost-Bibliotheken? Ich meine, das kann ich sofort sagen, ich sollte mir diesen Teil von Boost anschauen, um das Problem zu lösen. Meistens erklärt die Beschreibung, die in der main page Boost erscheint nicht einmal, was es beabsichtigt oder speziell für jemanden, der nicht alle diese C++ - spezifischen Wörter verwenden.

+0

Eine komplette Referenz in Buchform wäre wohl am besten, gibt es eine? Leider hat Boost kontinuierliche Aktivität, so dass das Buch zumindest in einigen Bibliotheken schnell veraltet sein könnte. –

+0

Wenn Sie uns sagen können, welche Aktionen 'einen Teil des Boosts erfordern', kann dies die Suche einschränken. Boost ist ziemlich umfassend. – Fox

Antwort

11

ich persönlich die Boost Libraries Seite zu finden sein viel einfacher zu navigieren als die main page Boost.

Diese Boost Libraries-Seite ist mir am ehesten ein Spickzettel bekannt. Abgesehen davon kann ich Ihnen nur empfehlen, die Boost-Dokumente regelmäßig zu durchsuchen, wenn Sie mit der Arbeit an neuen Bereichen Ihres Projekts beginnen. Bibliotheken, die Sie bisher wenig gebraucht haben, werden Sinn machen, wenn Sie sehen, wie Sie ihre Funktionalität auf Ihr Projekt anwenden können und wie Sie mehr von C++ lernen, um zu sehen, wie C++ - spezifische Features wie Type Traits Ihnen nützen können.

Sie könnten auch versuchen Beyond the C++ Standard Library: An Introduction to Boost. Ich habe es nicht gelesen.

+0

Eine Einführung in Boost ist ein gutes Buch, aber es ist eher ein "Buch" als ein "Spickzettel". –

+0

+1 für BtCSL, ich habe es gelesen. – MSalters

+0

Ausgezeichnetes Buch. Definitiv lesenswert. – Ferruccio

4

Nun, Blick auf die Bibliothek Liste here oder here sind, wie ich mich mit Boost vertraut gemacht. Klicken Sie sich einfach durch, um sich einen Überblick über die Möglichkeiten der Bibliotheken zu verschaffen. Dann, wenn Sie jemals etwas brauchen, erinnern Sie sich vielleicht daran, dass die Funktionalität in Schwung gekommen ist.

Ich nehme an, Sie könnten auch versuchen, die site with Google für die Schlüsselwörter, die Sie versuchen, bei einem bestimmten Problem zu verwenden.

Code wegwerfen, nachdem Sie es geschrieben haben, ist schwer zu tun, aber das Richtige zu tun. Zufälligerweise habe ich gestern eine Frage gestellt, und nachdem ich die ganze Sache umgesetzt hatte, fand jemand Boost. Ich habe es nur kontrolliert und dann gelöscht. Betrachten Sie es als eine Lernübung :)

1

Ich habe die Boost-Bibliotheken oft benutzt und es ist schwer, den Überblick zu behalten, was in ihnen steckt. Es gibt ein paar Heuristiken, die ich verwende, um zu sehen, ob es sich lohnt, die Boost Libraries Seite zu überprüfen.

Ist die problem Ich habe eine, die viele C++ - Entwickler wahrscheinlich haben? Gibt es eine andere Programmiersprache, in der diese problem einfach zu lösen ist? Die Boost-Entwickler lieben es, die wahrgenommenen Mängel von C++ zu beheben. Ist die problem viel repetitive Codierung? Enthält das Problem math?

Sogar noch, es ist möglich, Dinge zu verpassen. Ich habe einen Code gelesen, der type traits gut genutzt hat, aber viel repetitiven Code hatte, der durch die operators library eliminiert werden konnte. Ich fragte den Autor, warum er es nicht benutzte und er sagte: "Ich hatte noch nichts davon erfahren." Das Erlernen der Boost-Bibliotheken ist wie alles andere ein allmählicher Prozess.

0

Ich stimme zu, dass es nicht immer offensichtlich ist, dass ein Problem, das Sie versuchen zu lösen, bereits im Schub ist.
Viele Fragen in SO haben Antworten auf Boost, also war für mich SO eine Art Spickzettel (wenn auch nicht im traditionellen Sinne).
Vergessen Sie nicht, dass es nicht weil etwas im Boost ist, es ist natürlich die beste Lösung für Ihr Problem.

5

Meiner Meinung nach gibt es drei verschiedene Arten von Boost-Bibliotheken:

  1. Eine Bibliothek wie die Vorlage Meta-Programmierung Bibliothek (boost :: mpl) stellt ein völlig neues Konzept (neu für den Uneingeweihten) zur C++ Programmierung. Sobald Sie das Konzept verstanden haben, werden Sie wahrscheinlich auf viele verschiedene Situationen treffen, in denen Sie instinktiv denken "Dies kann wahrscheinlich mit MPL getan werden und ich muss nur herausfinden, wie"

  2. Ein paar Bibliotheken sind einfach zu verstehen und kann häufig verwendet werden: boost :: function, boost :: bind, die Iterator-Bibliothek, boost range und operator um nur einige zu nennen. Sie machen vertraute Dinge viel einfacher zu machen und wie andere Poster gesagt haben, reduzieren Sie die Notwendigkeit für sich wiederholenden Code.

  3. Dann gibt es alle Bibliotheken, die den Bedarf an umfangreichen Standardbibliotheken füllen, die Java seit langem hat: Parsergenerierung mit boost :: spirit, Graphbibliotheken, asynchroner Ein- und Ausgabe usw. Diese können entdeckt werden eins nach dem anderen. Du solltest unbedingt hier nachschauen, bevor du loslegst und deinen eigenen Sprachparser implementierst :-)