<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[STL streams]]></title><description><![CDATA[<p>hola leute</p>
<p>aus dem thread: <a href="http://www.c-plusplus.net/forum/307812" rel="nofollow">http://www.c-plusplus.net/forum/307812</a></p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich würde die IOStreams nicht als Designvorbild nehmen. Die stammen aus grauer C++-Vorzeit, lange bevor das was man heutzutage &quot;gutes C++&quot; nennt erfunden wurde. Heutzutage würde man sie sicherlich ganz anders aufziehen, die Mehrfachvererbung wäre dabei eine der Stellen, die man ändern würde.</p>
</blockquote>
<p>was wuerde man heute aendern wollen, anders machen, verzichten oder komplett neu machen ?<br />
gebt mal eure meinung ab, beispiele, anregungen ...</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307815/stl-streams</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 09:03:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307815.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Sep 2012 07:19:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL streams on Thu, 06 Sep 2012 07:19:08 GMT]]></title><description><![CDATA[<p>hola leute</p>
<p>aus dem thread: <a href="http://www.c-plusplus.net/forum/307812" rel="nofollow">http://www.c-plusplus.net/forum/307812</a></p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich würde die IOStreams nicht als Designvorbild nehmen. Die stammen aus grauer C++-Vorzeit, lange bevor das was man heutzutage &quot;gutes C++&quot; nennt erfunden wurde. Heutzutage würde man sie sicherlich ganz anders aufziehen, die Mehrfachvererbung wäre dabei eine der Stellen, die man ändern würde.</p>
</blockquote>
<p>was wuerde man heute aendern wollen, anders machen, verzichten oder komplett neu machen ?<br />
gebt mal eure meinung ab, beispiele, anregungen ...</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248944</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Thu, 06 Sep 2012 07:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to STL streams on Thu, 06 Sep 2012 07:24:33 GMT]]></title><description><![CDATA[<p>Zum Beispiel, dass istream und ostream von ios erben, und iostream von istream und ostream. Paradebeispiel für den Diamanten des Todes. Absolut grausig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248945</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 06 Sep 2012 07:24:33 GMT</pubDate></item><item><title><![CDATA[Reply to STL streams on Thu, 06 Sep 2012 08:16:49 GMT]]></title><description><![CDATA[<p>Bessere Möglichkeiten der Internationalisierung, die variadischen Templates böten sich an, um eine printf-artige Syntax typsicher zu unterstützen.</p>
<p>Beim Erweitern der Streams kommt man schnell zu sehr kryptischen Funktionen. sbumpc, pbackfail, epptr, wtf? Kein Wunder, dass niemand eigene Erweiterungen der Streams schreibt, dabei ist das eigentlich gar nicht so schwer und oftmals sehr nützlich. Aber es ist einfach zu schwer reinzukommen. Es gibt dazu ungefähr ein Buch auf der Welt und auch mit diesem ist es nicht leicht. Kein Mensch scheint zu verstehen, wie die Streams intern aufgebaut sind und was mit womit verbunden ist.</p>
<p>Viel zu viel virtual(sowohl Funktionen als auch Vererbung) und ein aufgeblasener interner Status (wegen der vielen Flags), alles mit Laufzeitkosten verbunden. stdio.h-Methoden <strong>sind</strong> in vielen Szenarien schneller, ohne dass die Streams deutlich mehr bieten würden, das ist keine C-Propaganda. Wen interessiert, dass die Streams dank dieser Architektur theoretisch total umgebaut werden könnten, wenn das niemand nutzt (siehe vorheriger Punkt)? Das würde man heute von Grund auf anders aufziehen. Mit den Templates hat man die Möglichkeit, genau so anpassbare Funktionen zu schreiben, die aber dank direktem Inlining keinen Laufzeitnachteil hätten. Vielleicht sogar schneller als stdio.h, so wie std::sort in der Regel schneller ist als qsort.<br />
Formatierung gehört nicht in die Ausgabemethoden, die dann jedes Mal alle Flags checken müssen, selbst wenn man kein einziges davon benutzt. Viele Formatierungsaufgaben könnte man auf freie Funktionen auslagern, die man zwischen die Daten und die Ausgabe schalten kann.</p>
<p>Die Fehlerbehandlung ist recht unintuitiv. Jede zweite Frage hier im Forum dreht sich um den Logikfehler <code>while(!cin.eof()) cin &gt;&gt; data;</code> . Das könnte man besser handhaben.</p>
<p>Ich kann keine Lösung für diese Probleme anbieten, aber das sind die Nachteile die mir im Moment einfallen, grob nach Priorität sortiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248966</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 06 Sep 2012 08:16:49 GMT</pubDate></item></channel></rss>