C++ Templates: The Complete Guide | 
vergrössern | Autoren: Nicolai M. Josuttis, David Vandevoorde Urheber: Nicolai M. Josuttis, David Vandevoorde Verleger: Addison-Wesley Longman, Amsterdam
Kaufen Neu: EUR 37,61
Neu (74) Gebraucht (8) ab EUR 37,61
Bewertung: 4 Rezensionen Verkaufsrang: 2525
Medium: Gebundene Ausgabe Seiten: 552 Versandgewicht: 2.2 Maße (innen): 9.3 x 7.5 x 1
ISBN: 0201734842 Dewey Dezimalzahl: 005.268 UPC: 785342734843 EAN: 9780201734843 ASIN: 0201734842
Publikation: November 20, 2002 Verfügbarkeit: Versandfertig in 1 - 2 Werktagen Versand: Internationaler Versand möglich Zustand: Neu-Buch. Dieser Artikel kommt direkt aus Großbritannien per Express-Luftpost und dauert 7-10 Arbeitstage.
| |
| Ähnliche Artikel:
|
| Kundenrezensionen:
The Templates++ Programming Language April 2, 2008 Dr. Christian Donninger (Arbesbach, NOE Österreich) 4 aus 4 fanden die folgende Rezension hilfreich
Mit der STL haben sich Templates als eine eigene Sprache innerhalb (und teilweise ausserhalb) von C++ entwickelt. Ein ebenfalls passender Titel für dieses Buch wäre "The Templates++ Programming Language". Es ist so etwas wie ein Annotated Reference Manual. Der erste Teil "The Basics" ist eine relativ sanfte Einführung in die Sprache. Teil II "Templates in Depth" ist das Reference Manual. Teil III "Templates and Design" enthält fortgeschrittene Techniken. Traits, Metaprogramms, Templates versus virtual Functions... Teil IV "Advanced Applications" behandelt die Verwendung von Templates in Libraries. Wie die Autoren selbst betonen gibt es zwischen Teil III und IV keine scharfe Grenze. Ich bin kein Templates Experte (genaugenommen mag ich sie als alter C- und Assembler Hacker nicht). Soweit ich das beurteilen kann sind beide Autoren sehr kompetent. Die Erklärungen sind sehr gut. Es wird alles bis ins feinste Detail erklärt. Nach dem Studium dieses Buch verstehe ich nun so manches Konstrukt in modernen C++ Libraries besser. Die Autoren haben mich aber nicht bekehrt (in diesem Fall hätten sie 7-Sterne bekommen). Ich werde im eigenen Kode weiterhin #define max(a,b) ((a)>(b)?(a):(b)) anstatt der entsprechenden template function schreiben. Manches löst bei mir leichtes Schaudern aus. Ein paar vorgestellte Konzepte errinnern mich an selbstmodifizierenden Kode. Jeder Assembler Programmierer, der zeigen wollte wie gut er ist, schrieb einst derartige Konstrukte. Das ist keine Kritik an den Autoren. Es ist im Gegenteil sehr interessant, was man in Templates++ alles anstellen kann. Ich habe in den letzten 20 Jahren eine Bug-Statistik meiner Programme und Hardware-Designs erstellt (fast 1 Million Zeilen Assembler, C, C++, Java, Verilog und VHDL Kode). Die Fehlerquelle schlechthin ist mangelndes Verständnis was der Kode überhaupt tun soll und die daraus resultierenden Änderungen. Fehlerquelle Nr. 2 sind "last minute changes" und besonders schlaue Abkürzungen, Nr. 3 Speziallfälle. Z.B. in Schach die Enpassant Regel. Über die mangelnde Type-Sicherheit von #define max(a,b) bin ich noch nie gestolpert. Es ist eine Illusion, dass man diese Fehlerquellen durch neue sprachliche Konstrukte in den Griff bekommt. Diese Fehler sind sprachunabhängig. Manche template Konstrukte würde ich unter die Fehlerquelle "besonders schlaue Abkürzungen" einordnen. Das Argument, mit mächtigeren Sprachkonstrukten wird die Programmierung wesentlich effektiver, ist ebenfalls nicht zu halten. Der Grossteil des Aufwandes ist inhaltlicher Natur. Wie wird das Problem am besten gelöst, ausprobieren und verbessern bestehender Methoden. Wenn man einmal weiss, wie es geht, ist das "hineinhacken" eine Kleinigkeit. Nach meinen Erfahrungen ist die beste Methode zur Reduzierung von Bugs das Programm in doppelter Ausführung in stark unterschiedlichen Programmiersprachen zu schreiben. Dies ist im Hardware-Design üblich. Wenn die Programme ein unterschiedliches Ergebnis liefern, ist irgendwo was falsch. In reinen Software Projekten wird diese Methode nur in sehr "mission-critical" Anwendungen verwendet (2 unabhängige Teams schreiben dasselbe Programm). Es wäre aber auch in diesem Bereich generell sehr nützlich. Die Fehlerquelle "mangelndes Verständnis" bekommt man dadurch allerdings auch nicht weg. There is no silver bullet.
Nicht zu übertreffen Juni 21, 2004 Stefan Lutz (Augsburg) 5 aus 5 fanden die folgende Rezension hilfreich
Dieses Buch ist genial und für den Bereich 'C++ Templates' nicht zu übertreffen. Für den Anfänger ist es allerdings nicht wirklich geeignet, da es an einigen Stellen sehr in die Tiefe geht und ein wirklich fundiertes(!) Grundwissen voraussetzt. Sehr hilfreich ist es bei diesem Buch auch, wenn man sich schon mal mit der Arbeit von Compilern beschäftigt hat und eine gewisse Ahnung hat, wie diese Programme arbeiten. Das hilft dann beim Verständniss der Erklärungen an manchen Stellen sehr und lässt einem so manche Erklärung als einleuchtend erscheinen. Für den erfahrenen C++-Programmierer, der sich schon immer mal richtig mit Templates beschäftigen wollte oder jetzt muss, bestens geeignet.
Pflichtlektüre für Experten Oktober 29, 2003 helmut_z 10 aus 11 fanden die folgende Rezension hilfreich
Dieses Buch ist das erste, das sich ausschließlich dem Thema C++ Templates widmet. Ein wenig vergleichbar ist eventuell noch "Modern C++ Design" von Andrei Alexandrescu. Während aber in "Modern C++ Design" die Praxis einer C++ Templatesbibliothek beschrieben wird, steht in "C++ Templates" die Theorie im Vordergrund: ganze Kapitel befassen sich mit Themen, die anderswo höchstens am Rande erwähnt werden, wie etwa Instantiierungsmodelle, Namensauflösung, Spezialisierung, Traits, Policy Klassen, Metaprogramme oder Expression Templates. Im Gegensatz zu anderen Pionierwerken, die ein Thema bloß ansatzweise aufzuarbeiten beginnen, wird hier der Boden gründlich durchgearbeitet; es ist voll neuer Erkenntnisse zu Dingen, von denen man bisher fälschlicherweise geglaubt hat, dass man sie bereits verstanden hat. Ich kann mir kaum vorstellen, dass in nächster Zeit ein besseres Buch zum Thema C++ Templates geschrieben werden kann. Als einziger Kritikpunkt fällt mir ein, dass vielleicht manche Themen etwas ausführlicher erklärt und manche Beispiele besser gewählt werden könnten. Das Buch ist jedenfalls definitiv nichts für Anfänger; den Fortgeschrittenen kann es aber zugumutet werden, dass sie manche Teile des Buches ein wenig intensiver durcharbeiten müssen. Für Experten ist es aber eine Investition, die sich bezahlt macht: Wer dieses Buch nicht kennt, darf sich nicht guten Gewissens als C++ Experten bezeichnen.
Phantastisch Februar 5, 2003 Zambelli Werner (Graz, Steiermark Österreich) 24 aus 24 fanden die folgende Rezension hilfreich
Was mich an diesem Buch beeindruckt hat, war die Kombination aus Sicht des Compilerbauers(Vandevoorde) und Praktikeres(Josuttis) auf Templates. Das Buch liefert Einsichten die zum tieferen Verständnis von Templates beitragen. Dazu muss man aber schon eine gehörige Portion Wissen mitbringen, ein völliger Anfänger wird z.T. nur Bahnhof verstehen. Ein fortgeschrittener C++ Programmierer wird allerdings viel wertvolles Wissen daraus ziehen können. Selbst Experten werden das eine oder andere "Aha!" Erlebnis haben.Es wird Einblick in die Zukunft von Templates genommen und einige Spezialitäten (z.B. Expression Templates) beschrieben, über die man nur wenig Literatur findet. Viele scheinbar unwichtige Details wie Overload Resolution werden genau beleuchtet, Designentscheidungen, die dazu geführt haben warum etwas so ist wie es ist, werden erklärt, und viele Dinge mehr. Rundum, ein ausgezeichnetes Buch, das für Anfänger allerdings nicht geeignet ist.
|
|
|