Ich benutze seit einiger Zeit mehr "moderne" C++ - Konstrukte, aber irgendwie oberflächlich und nicht überall. Ich bin auf der Suche nach Open-Source-Projekten zu studieren, die gute Beispiele für moderne C++ - und STL-Nutzung sind.Beispiele für "modernes C++" in Aktion?
Dinge, wie in Meyers "Effective STL" vorgeschlagen, wie zum Beispiel for
Schleifen zu vermeiden und sie durch funktionellere Konstrukte zu ersetzen, mit boost :: bind und boost :: -Funktion, etc. Diese fühlen sich immer noch ein wenig unnatürlich zu mir, und wenn ich etwas schnell erledigen und arbeiten muss, tendiere ich dazu zurück zu libc und string.h (du kannst meine strtok haben, wenn du sie aus meinen kalten, toten Händen hebst).
Allerdings hatte ich auch die positive Erfahrung zu finden, was eine drastische Änderung vereinfacht hätte, weil ich diese Konstrukte verwendet habe oder etwas mit nur ein paar Zeilen Code implementieren konnte, weil ich das Recht hatte Operatoren und Funktoren herumliegen. Außerdem habe ich in letzter Zeit dem Nebeneinander mehr Aufmerksamkeit geschenkt, und das wird für mich immer wichtiger.
Können Sie einige Beispiele für gut geschriebene Open-Source-Projekte empfehlen, die stark von der STL und anderen modernen C++ - Techniken Gebrauch machen, die ich studieren könnte? Ich bin besonders an Anwendungscode interessiert, das Durchsuchen der Boost-Quellen war hilfreich, aber es ist notwendigerweise sehr allgemein, weil es Bibliothekscode ist.
Ich interessiere mich für mittelgroße bis größere Projekte, mindestens einige zehntausend Linien. Es ist ziemlich einfach, Beispiele zu finden, die ein paar hundert Zeilen lang sind, aber das ist nicht sehr hilfreich.
Kann ich nimm dir deine strtok() weg aber gibst du strtok_r() zurück? Es ist Thread-Safe und Reentrant. –
Ich gab strtok auf, als ich eine Tokenizer-Klasse schrieb, die einen const_iterator von ihrer begin() -Methode zurückgab, um mich durch die Token zu iterieren. –
Boost's String Algo, Regex, Spirit, Xpressive (und selbst Tokenizer, wenn du unglücklich bist) essen 'strok()' am Leben. :) – jfs