[Artikelvorschlag] C++ Template Metaprogrammierung



  • Ich glaube so eine kleine Einführung mit Verweisen wäre schon interessant.
    Ich weiß nämlich gerade nicht, worum es geht, aber es scheint wohl was zu sein, was man kennen sollte.

    Und da ich das Magazin auch als Wissenportal sehe ("Was kann man denn noch so alles zu C++ lernen?"), würde es schon passen.
    Stimmt ihr beiden da zu? 🙂



  • Hi hi! Also GPC hat schon Recht, das Thema ist ne eigene Nummer für sich. Ich habe sowohl Modernes C++ Design als auch den MPL-Artikel aus dem SDJ-Magazin, und bis heute weiß ich nicht wirklich wofür ich das Zeug brauche.

    Es ist schon sehr speziell das Thema. Wer sich daran versucht, wird wirklich versuchen müssen einen guten Weg zu finden, nicht mit einem Roman zu enden, und trotzdem einem zu erklären, was das Zeug eigentlich bringen soll.

    Achja, ich sage nicht das es unnütz ist! Sondern nur, das es sehr speziell ist und die meisten wohl damit nicht eine Problemlösung daraus erkennen werden können.

    Aber ich wäre gespannt auf so einen Artikel, gerade weil ich es mir schlecht vorstellen kann. 😉



  • Artchi schrieb:

    Aber ich wäre gespannt auf so einen Artikel, gerade weil ich es mir schlecht vorstellen kann. 😉

    Nun müsste man aber jemanden finden, der so einen Artikel schreiben könnte und zudem die Kritikpunkte von GPC erfüllt.

    estartu schrieb:

    Stimmt ihr beiden da zu?

    👍



  • Freak_Coder schrieb:

    Artchi schrieb:

    Aber ich wäre gespannt auf so einen Artikel, gerade weil ich es mir schlecht vorstellen kann. 😉

    Nun müsste man aber jemanden finden, der so einen Artikel schreiben könnte und zudem die Kritikpunkte von GPC erfüllt.

    Ähm, ich dachte, du wärst das... 😕
    Willst du dich versuchen? 🙂



  • Du weißt sicherlich das ich bis jetzt keine Ahnung von der Materie habe 😉
    Ich müsste mich erstmal darein einarbeiten und wenn ich soweit bin melde ich mich wieder.

    Ich denke das es wirklich nicht schlecht wäre, wenn einer so einen Artikel schreibt der noch keine Ahnung von sowas hat.

    Denn so könnte der Artikel besser für TMP-Anfänger verständlich sein da ein TMP-Anfänger das auch geschrieben...

    Ich meld mich dann wenns soweit ist.



  • Hi Freak_Coder,

    Ich hab bereits "Modernes C++ Design" gelesen und ich habe auch "C++ Templates - The Complete Guide". Aber was Template Metaprogrammierung ist, habe ich eigentlich erst so richtig aus "C++ Template Metaprogramming - Concepts, Tools, and Techniques from Boost and Beyond" erfahren.
    An diesem Buch sieht man, wie Artchi das auch schon gesagt hat, das es ein recht spezielles Thema ist.
    Einen wirklich guten Artikel über Template Metaprogrammierung zu schreiben, der nicht auf die genannten Werke verweist, wird schon sehr schwierig werden.
    Ich denke, wenn dich das Thema wirklich interessiert, das du dir folgende Bücher besorgst (am besten in dieser Reihenfolge):

    • "C++ Templates - The Complete Guide" (Als gutes Buch um dein Wissen um Templates ausbauen zu können, und eine Art Nachschlagewerk zu haben),
    • "Modernes C++ Design" (Weil es meiner Meinung nach ein must-have-Buch ist, welches dir auch Design technische Aspekte vermitteln kann)
    • Und zu guter letzt "C++ Template Metaprogramming" ( Ein Probekapitel findet man auf http://www.awprofessional.com/bookstore/product.asp?isbn=0321227255&rl=1 )

    Aber Achtung, C++ Template Metaprogramming ist aber meines erachtens nach ein harter Brocken.
    C++ Template Metaprogramming | ISBN: 0321227255

    Ich persönlich sehe den Schwerpunkt, des praktischen Nutzen von Template Metaprogrammierung in Libraries, wie es Sie in Boost zu hauf gibt. Gerade wenn es darum geht möglichst flexible Container zu schreiben, möglichst dynamisch einsetzbare Klassen zu entwerfen (z.B. das man verschiedene Backends verwenden kann) oder vielseitig verwendebare Algorithmen zu implementieren, ist das Wissen um Template Metaprogrammierung, vorallem die Themem Policies und Type Traits, nützlich.

    Ich muss dazu sagen das es, imho nur eine Spielerei wäre eine Anwendung so zu schreiben, dass sie extrem viel von der Template Metaprogrammierung gebraucht macht, nur damit sie Template Programmierung nutzt oder cool wirkt. Meines erachtens nach ist sie vorallem für das Schreiben von wiederverbaren Code, nützlich. Was nicht heißt das man für alles, das man eimal wiederverwenden möchte, einen Ansatz in der Template Metaprogrammierung suchen sollte. Ich denke das man Template Metaprogrammierung und wenn es nur ein kleiner Teilbereich wie Policies sind dann einsetzen sollte wenn einem klar wird, das es die Arbeit im Endeffekt vereinfachen könnte.

    Mich hat die Template Metaprogrammierung Anfangs auch gehypt und ich hätte diese am liebsten überall und in jedem Programm angewendet. Aber mit der Zeit habe ich gemerkt das man davon Abstand gewinnen muss und über die wirklichen Praktischen Aspekte nachdenken muss.

    Just my 2 Cents 😉

    Regards, 🙂



  • hmmm... ich stimme evilissimo zu, das eine Buch welches er empfohlen hat, kenne ich zwar nicht, bestelle ich mir aber noch die Tage. Selber finde ich das Thema zwar sehr faszinierend, kann aber die Einsätze dieser Technik an zehn Fingern abzählen. Und obwohl ich mich jetzt schon länger damit beschäftige, traue ich mir selber nicht zu, einen Artikel zu schreiben (der über Expression Templates und die Basics rausgeht), der meine oben genannten Kriterien erfüllt.

    Am Liebsten wäre es mir, wenn der Artikel von Hume, volkard oder camper geschrieben wird. Da die aber eh unter chronischem Zeitmangel leiden, fallen die vermutlich raus und ich sehe kein Problem, wenn es jemand anders macht, aber einen der drei genannten will ich als Revisor dabei haben.

    MfG

    GPC



  • Hi,

    da kommt ja ziemlich viel auf mich zu 🙄 Und ich glaube nicht das ich in kurzer Zeit viel lernen kann.

    Wie gesagt gibt es hier auch andere die sich mit dem Thema gründlich beschäftigt haben und ich würde mir auch wünschen wenn einer von denen den Artikel schreibt.

    Nachdem ich dann hoffentlich diesen "schönen Artikel" durchgelesen haben werde, würde ich mir vielleicht auch die Bücher bestellen, zumal noch 2 Bücher in meiner eigenen Liste noch davor kommen müssen 🙄



  • Hallo,

    Freak_Coder schrieb:

    da kommt ja ziemlich viel auf mich zu 🙄 Und ich glaube nicht das ich in kurzer Zeit viel lernen kann.

    die Zeit ist ja nicht das Problem... von der hättest du genug, da lassen wir jedem so viel davon, wie er braucht. In dem Fall wohl etwas mehr 😉

    Nachdem ich dann hoffentlich diesen "schönen Artikel" durchgelesen haben werde, würde ich mir vielleicht auch die Bücher bestellen, zumal noch 2 Bücher in meiner eigenen Liste noch davor kommen müssen 🙄

    hehe, die Liste wächst und wächst...auf ein Buch, das du kaufst, kommen zwei neue Bücherwünsch drauf. Der Horror. 😞

    MfG

    GPC



  • evilissimo schrieb:

    Aber was Template Metaprogrammierung ist, habe ich eigentlich erst so richtig aus "C++ Template Metaprogramming - Concepts, Tools, and Techniques from Boost and Beyond" erfahren.

    Echt? Ich muss gestehen, dass ich das Buch eher enttäuschend fand.
    Mir ist auch nach wie vor nicht klar, was das Buch sein will. Bis auf drei wirklich interessante Kapitel hat es mir zuviel von einer Referenz für boost.mpl.

    Habe das ja auch hier schonmal zum Ausdruck gebracht.

    Die Kombination aus "C++ Templates - The Complete Guide" und die Metaprogramming-Kapitel aus "Generative Programming - Methods, Tools, and Applications" haben mir deutlich mehr geholfen.



  • @Hume
    Hättest du nicht evtl. Zeit und Lust, den Artikel zu schreiben?
    Falls nein: Ständest du als Revisor zur Verfügung?

    Grüße

    GPC



  • GPC schrieb:

    Hättest du nicht evtl. Zeit und Lust, den Artikel zu schreiben?

    Nein. Tut mir leid. Mal davon abgesehen, dass ich das zeitlich nicht schaffe,
    würde ich mir das auch weder didaktisch noch schreiberisch zu trauen.

    Falls nein: Ständest du als Revisor zur Verfügung?

    Wenn das von dem Autor dann tatsächlich gewünscht sein sollte, gerne.



  • HumeSikkins schrieb:

    GPC schrieb:

    Hättest du nicht evtl. Zeit und Lust, den Artikel zu schreiben?

    Nein. Tut mir leid. Mal davon abgesehen, dass ich das zeitlich nicht schaffe,
    würde ich mir das auch weder didaktisch noch schreiberisch zu trauen.

    alter Tiefstapler 😉 Was es bisher so von dir zu lesen gab (FAQs, deine HP) war echt gut.

    Falls nein: Ständest du als Revisor zur Verfügung?

    Wenn das von dem Autor dann tatsächlich gewünscht sein sollte, gerne.

    Okay, dann werde ich dich dann bei Zeiten anhauen. Danke schon mal im Voraus.

    GPC



  • HumeSikkins schrieb:

    Echt? Ich muss gestehen, dass ich das Buch eher enttäuschend fand.
    Mir ist auch nach wie vor nicht klar, was das Buch sein will. Bis auf drei wirklich interessante Kapitel hat es mir zuviel von einer Referenz für boost.mpl

    Naja das es auf Boost ausgelegt ist, lässt ganz gut aus dem Buch Untertitel "Concepts, Tools, and Techniques from Boost and Beyond" entnehmen.

    Mich persönlich hat das interessiert weil ich die Dokumentation der MPL auf der Boost Homepage einfach nur erbärmlich finde.

    Gerade die Definitionen was Metafunktionen etc sind hat mir die Augen geöffnet. Denn mir war das alles nicht so bewusst. "Crossing the Compile-Time/Runtime Boundary" war für mich eigentlich so interessanteste Kapitel da ich das noch nicht ganz verstanden hatte wie das geht.

    HumeSikkins schrieb:

    "Generative Programming - Methods, Tools, and Applications" haben mir deutlich mehr geholfen.

    Dieses Buch kenne ich überhaupt nicht, ich kann mich nicht einmal daran erinnern davon jemals gelesen bzw gehört zu haben. Eventuell sollte ich mir das mal genauer anschauen (vielleicht kann ich diesem auch noch etwas entnehmen)

    "C++ Templates - The Complete Guide" habe ich mir eigentlich erst nach "C++ Template Metaprogramming - ..." gekauft und bin aber noch nicht dazu gekommen es einmal richtig zu lesen, dazu fehlt mir momentan einfach die Zeit 🙄

    Dein Review zu dem Buch habe ich gerade das erste mal gelesen. Ich finde auch nicht das es zu den "must have" Büchern gehört. Aber wer sich mit Boost und Template Metaprogrammierung beschäftigt, kann mit dem Buch einiges anfangen.

    Grüße,
    Vinzenz 🙂



  • evilissimo schrieb:

    HumeSikkins schrieb:

    "Generative Programming - Methods, Tools, and Applications" haben mir deutlich mehr geholfen.

    Dieses Buch kenne ich überhaupt nicht, ich kann mich nicht einmal daran erinnern davon jemals gelesen bzw gehört zu haben. Eventuell sollte ich mir das mal genauer anschauen (vielleicht kann ich diesem auch noch etwas entnehmen)

    Wurde vor ein paar Jahren mal richtig gehyped (z.B. von Leuten wie Francis Glassborow, oder James Coplien), ist aber weder ein C++ noch ein Template-Buch sondern ein Softwarekonstruktions-Buch. Es geht um:

    manufacturing software products out of components in an automated way, that is, the way other industries have been producing mechanical, electronic and other goods for decades.

    Dabei werden nach verschiedenen Design- und Analyse-Methoden auch relevante Implementationstechniken (generische Programmierung, aspektorientiere Programmierung, ...) vorgestellt und dort im Zuge von Beispielen die Möglichkeiten von C++-Templates (Generische- und Meta-Programmierung) intensiv beleuchtet.

    Alles in Allem ist es ein sehr interessantes Buch, aber nichts für Leute mit schwachen Nerven. Der Schinken ist schon in einsem sehr akademischen Ton gehalten - also nichts für zwischendurch sondern wirklich arbeit.

    Ein Book-Review von Accu.org


Anmelden zum Antworten