[Artikelvorschlag] C++ Template Metaprogrammierung



  • Hallo,

    steht sowas schon an ??
    Wäre cool wenn darüber auch mal ein Artikel erscheinen würde.

    Nen Artikel für nen leichten Einstieg halt ...



  • Das ist doch eh nur ne Spielerei! Damit kann man doch nichts Sinnvolles anfangen.



  • Das was du als Spielerei bezeichnest, sehe ich als wertvolles Wissen !



  • Das ist es sicherlich. Und ich bin auch selber ein Fan davon. Aber ich erahne die gleiche Situation wie mit den Design Pattern, man wird viel von Josuttis und Alexandrescu abkupfern und wenig eigene Beispiele bringen können.

    Prinzipiell habe ich natürlich nichts gegen so einen Artikel, hey, ich würde mich sogar sehr über einen freuen, aber ich befürchte, dass wird etwas arg knifflig werden.

    MfG

    GPC



  • Kennst du denn ein Buch oder nen Link wo es von Anfang an leicht erklärt wird.
    Wie ist es in "Modern C++ Design" wird es da von Anfang an erklärt oder braucht man ein gewisses Grundwissen ...

    Und zu Not werde ich mich schon irgendwie damit beschäftigen und vielleicht selber mal nen Artikel schreiben 😉



  • Ich hatte mir vor nen paar Wochen die neue Auflage von Effektiv C++ geholt und bin gerade dabei es zu lesen und habe erst jetzt gemerkt das da auch was über Template Metaprogrammierung ist 😃 😃

    Und das erstmal verstehe ich nen einfach Beispiel 😛



  • Freak_Coder schrieb:

    Kennst du denn ein Buch oder nen Link wo es von Anfang an leicht erklärt wird.

    The Complete Guide to C++ Templates deckt das ab.

    Wie ist es in "Modern C++ Design" wird es da von Anfang an erklärt oder braucht man ein gewisses Grundwissen ...

    Letzteres.

    Das Problem ist imho nicht, dass einige das Wissen zu dem Thema nicht besitzen... ich sehe das Problem eher darin, es vernünftig zu vermitteln, ohne dass ein Artikel rauskommt, der auf eine Seite passt oder andauernd auf die genannten Bücher verweist.

    MfG

    GPC



  • 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


Anmelden zum Antworten