{"id":3353,"date":"2018-02-05T16:18:30","date_gmt":"2018-02-05T15:18:30","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=3353"},"modified":"2018-02-05T17:16:47","modified_gmt":"2018-02-05T16:16:47","slug":"c-guns-generic-data-type-design-pattern-teil-4","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=3353","title":{"rendered":"C++ Guns: Generic Data Type Design Pattern - Teil 4"},"content":{"rendered":"<p>Die Idee, f\u00fcr User defined Datentypen jede Variable in einem std::tuple oder std::array zu halten, kann nicht \u00fcberall gut sein. F\u00fcr jede Variable ben\u00f6tigt man noch eine getter Funktion um der Variablen einen Namen und damit Semantik zu geben. Ich hatte in den letzten Kapitel noch erw\u00e4hnt, dass es viel Sinn macht, diese Funktionen als const zu deklarieren. Da in den Beispiel Datentypen jede Variablen von der anderen abh\u00e4ngt. Und daher d\u00fcrfen sie nicht beliebig getrennt ver\u00e4ndert werden.<\/p>\n<p>Wann diese Regel nicht mehr gilt ist ganz klar: Wenn Variablen in einem Typ gespeichert werden, die nicht voneinander abh\u00e4ngen. Da frage ich mich nat\u00fcrlich gleich, warum sie dann in einem gemeinsamen Typ gespeichert sind. Aber wom\u00f6glich ist dieser \u00dcbergang ja flie\u00dfend.<\/p>\n<p>Sowas wie PointReader\/Writer h\u00e4tte als Membervariable nat\u00fcrlich den Path zur Datei, bzw. irgendeine Art von Device\/File Handle. Eventuell noch eine Error Variable. Diese beiden Variablen sind nat\u00fcrlich nicht so streng gekoppelt wie xyz, aber geh\u00f6ren dennoch zusammen.<\/p>\n<p>Eigentlich sind das ja Klassen die Verhalten simulieren. Sowas wie ein Widget. Mit Fenstergr\u00f6\u00dfe, Position, Farbe, Childwidgets. <\/p>\n<p>Also ich halte mal fest, f\u00fcr Membervaribalen std::tuple std::array nutzen erscheint mir f\u00fcr Massendaten sinnvoll. Sonst nicht. Mal sehn ob sich das in der Praxis bew\u00e4hrt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Idee, f\u00fcr User defined Datentypen jede Variable in einem std::tuple oder std::array zu halten, kann nicht \u00fcberall gut sein. F\u00fcr jede Variable ben\u00f6tigt man noch eine getter Funktion um der Variablen einen Namen und damit Semantik zu geben. Ich hatte in den letzten Kapitel noch erw\u00e4hnt, dass es viel Sinn macht, diese Funktionen als [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[17],"class_list":["post-3353","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-cpp"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3353"}],"version-history":[{"count":1,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3353\/revisions"}],"predecessor-version":[{"id":3354,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3353\/revisions\/3354"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3353"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}