<?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[C++ vor 10 Jahren]]></title><description><![CDATA[<p>Ich habe ca. 10 Jahre alten C++ Code vorliegen und der ist teilweise wirklich grausam. Waren vor 10 Jahren so Sachen wie maps, smart pointer und RAII noch nicht bekannt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315119/c-vor-10-jahren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 08:55:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315119.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Mar 2013 16:56:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 16:56:29 GMT]]></title><description><![CDATA[<p>Ich habe ca. 10 Jahre alten C++ Code vorliegen und der ist teilweise wirklich grausam. Waren vor 10 Jahren so Sachen wie maps, smart pointer und RAII noch nicht bekannt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309322</guid><dc:creator><![CDATA[darksideofthemoon]]></dc:creator><pubDate>Sun, 24 Mar 2013 16:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:11:08 GMT]]></title><description><![CDATA[<p>Nee, die sind erst kürzlich entdeckt worden, als zufällig mal jemand im Standard umgeblättert hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309327</guid><dc:creator><![CDATA[oleolol]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:11:08 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:14:35 GMT]]></title><description><![CDATA[<p>Wenn du in 10 Jahren heutigen C++-Code anschaust, wirst du auch die Haare raufen.</p>
<p>Hier ist der korrekte Code, in idiomatischem C++11 ein Tripel zu coden:</p>
<pre><code class="language-cpp">template &lt;typename A, typename B, typename C&gt;
struct triple {
  A a;
  B b;
  C c;

  triple(const A&amp; a, const B&amp; b, const C&amp; c) : a(a), b(b), c(c) {}
  triple(const A&amp; a, const B&amp; b, C&amp;&amp; c) : a(a), b(b), c(std::move(c)) {}
  triple(const A&amp; a, B&amp;&amp; b, const C&amp; c) : a(a), b(std::move(b)), c(c) {}
  triple(const A&amp; a, B&amp;&amp; b, C&amp;&amp; c) : a(a), b(std::move(b)), c(std::move(c)) {}
  triple(A&amp;&amp; a, const B&amp; b, const C&amp; c) : a(std::move(a)), b(b), c(c) {}
  triple(A&amp;&amp; a, const B&amp; b, C&amp;&amp; c) : a(std::move(a)), b(b), c(std::move(c)) {}
  triple(A&amp;&amp; a, B&amp;&amp; b, const C&amp; c) : a(std::move(a)), b(std::move(b)), c(c) {}
  triple(A&amp;&amp; a, B&amp;&amp; b, C&amp;&amp; c) : a(std::move(a)), b(std::move(b)), c(std::move(c)) {}
};
</code></pre>
<p>Ein anderes Beispiel sind Ranges, die den Code um einiges kürzer und sogar effizienter (da lazy) machen würden. Leider wird das mit denen nichts bis C++17.</p>
<p>Schau dir mal <a href="http://www.c-plusplus.net/forum/f66" rel="nofollow">andere Sprachen</a> an, die sind C++ bezüglich Ausdrucksstärke um einiges voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309330</guid><dc:creator><![CDATA[bashy]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:14:35 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:15:03 GMT]]></title><description><![CDATA[<p>Willkommen in der wirklichen Welt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> In großen Projekten musst du oft auch mit 20 Jahre altem Code arbeiten. Und früher hat man teilweise echt grauenhaften C++ Code geschrieben, wobei das heute auch noch oft genug der Fall ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309331</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:23:29 GMT]]></title><description><![CDATA[<p>Auch heutiger C++-Code ist grösstenteils grausam. Modernes C++ (im Sinne von Sutter, Meyers etc.) ist leider nur einem kleinen Teil von Programmierern bekannt. Wenn du durchschnittlichen Produktivcode anschaust, ist z.B. konsequente Anwendung von RAII recht unüblich.</p>
<p>bashy, extrem generische Programmierung ist tatsächlich nicht besonders schön, aber darum gibts vieles (wie <code>std::tuple</code> ) schon in der Standardbibliothek oder Boost. Für den Normalanwender wird der Code mit C++11 jedoch um einiges aussagekräftiger (Typinferenz, Range-Based For, Lambdas).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309334</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:52:06 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Für den Normalanwender wird der Code mit C++11 jedoch um einiges aussagekräftiger (Typinferenz, Range-Based For, Lambdas).</p>
</blockquote>
<p>Ach meinst du? Typinferenz macht normalen Code meiner Meinung nach eher unübersichtlicher. Ich verstehe zwar die Argumente dafür, aber wenn ich in meinen Code von einem halben Jahr reinschaue mit auto und etwas ergänzen möchte, fehlt mir Typinformation. Dann muss ich entweder ausprobieren, ob ich diese Methode aufrufen kann oder ich schaue mir an, was die Funktion zurückgibt. Alles nicht so optimal.</p>
<p>Das range-based For ist sehr oft unnütz. Entweder gibt es dafür schon ein Algorithmus in der Standardbibliothek oder es ist zu wenig möchtig. Oft brauche ich zusätzlich zum Element noch den Index =&gt; umständlich. Oder ich will manche Elemente überspringen =&gt; unmöglich. Im Zweifel schreibe ich die Loop dann lieber von Hand.</p>
<p>Abgesehen davon ist die Unterstützung noch rudimentär.</p>
<pre><code class="language-cpp">for (int key, std::string const&amp; value : my_map) {} // nicht erlaubt
</code></pre>
<p>Was ich oft brauche ist von a bis b zählen, aber das geht auch wieder nicht.</p>
<pre><code class="language-cpp">for (int i : range(1, 10)) {} // geht nicht
</code></pre>
<p>Wie die Lambdas ankommen muss man mal schauen. Stellt sich die Frage, ob es für viele den Aufwand wert ist, sie zu lernen, weil ganz trivial sind sie nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309341</guid><dc:creator><![CDATA[bashy]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:55:09 GMT]]></title><description><![CDATA[<p>bashy schrieb:</p>
<blockquote>
<p>Wenn du in 10 Jahren heutigen C++-Code anschaust, wirst du auch die Haare raufen.</p>
<p>Hier ist der korrekte Code, in idiomatischem C++11 ein Tripel zu coden:</p>
</blockquote>
<p>Mal abgesehen davon, dass der idiomatische Weg im Zweifel</p>
<pre><code class="language-cpp">template&lt;typename A, typename B, typename C&gt; using triple = std::tuple&lt;A, B, C&gt;;
</code></pre>
<p>sein dürfte:</p>
<pre><code class="language-cpp">template &lt;typename A, typename B, typename C&gt;
struct triple {
  A a;
  B b;
  C c;

  template&lt;typename A2, typename B2, typename C2&gt;
  triple(A2 &amp;&amp;a2, B2 &amp;&amp;b2, C2 &amp;&amp;c2) // universal references!
    : a(std::forward(a2)),
      b(std::forward(b2)),
      c(std::forward(c2)) { }
};
</code></pre>
<p>Siehe dazu auch <a href="http://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers" rel="nofollow">http://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309342</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 17:58:09 GMT]]></title><description><![CDATA[<p>bashy schrieb:</p>
<blockquote>
<p>Was ich oft brauche ist von a bis b zählen, aber das geht auch wieder nicht.</p>
<pre><code class="language-cpp">for (int i : range(1, 10)) {} // geht nicht
</code></pre>
</blockquote>
<p>Natürlich geht das!</p>
<pre><code>#include &lt;iostream&gt;

struct range
{
    int min, max;
    range(int a, int b)
    : min(a), max(b) {}

    struct iterator
    {
        int value;

        iterator(int val)
        : value(val) {}

        int operator*()
        {return value;}

        bool operator != (iterator other)
        {return other.value !=  value;}

        iterator operator++()
        {return ++value;}
    };

    iterator begin()
    {return iterator(min);}

    iterator end()
    {return iterator(max);}
};

int main()
{
    for (auto i : range(1, 10))
        std::cout &lt;&lt; i &lt;&lt; '\t';
}
</code></pre>
<p>Siehste?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309343</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 17:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 18:04:06 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Mal abgesehen davon, dass der idiomatische Weg im Zweifel [...] sein dürfte:</p>
<pre><code class="language-cpp">template&lt;typename A2, typename B2, typename C2&gt;
  triple(A2 &amp;&amp;a2, B2 &amp;&amp;b2, C2 &amp;&amp;c2) // universal references
</code></pre>
</blockquote>
<p>Eben nicht. Dann geht die Brace-Initialisation nicht mehr, die <a href="http://www.stroustrup.com/C++11FAQ.html" rel="nofollow">Stroustrup so mag</a>. Mit <code>std::tuple</code> geht das zwar (da <code>const&amp;</code> Parameter), aber nur auf Kosten einer Kopie der anderen Parameter.</p>
<p>Nathan schrieb:</p>
<blockquote>
<p>Natürlich geht das!</p>
</blockquote>
<p>Ja, es geht. So mache ich das auch. Aber es dürfte nur von wenigen benutzt werden, weil es nicht in der Standardbibliothek implementiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309344</guid><dc:creator><![CDATA[bashy]]></dc:creator><pubDate>Sun, 24 Mar 2013 18:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 18:05:41 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<pre><code>&lt;Code-Bloat&gt;
</code></pre>
</blockquote>
<p>Das witzige ist, dass das noch lange nicht die Bedingungen für einen Iterator erfüllt. Dazu sind erst noch ein paar hundert Zeilen Boilerplate nötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309346</guid><dc:creator><![CDATA[bashy]]></dc:creator><pubDate>Sun, 24 Mar 2013 18:05:41 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 18:10:32 GMT]]></title><description><![CDATA[<p>Ich habe das mal eben in ein paar Minuten gecodet, um es dir zu zeigen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309349</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 18:10:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 18:10:49 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template&lt;typename A2, typename B2, typename C2&gt;
  triple(A2 &amp;&amp;a2, B2 &amp;&amp;b2, C2 &amp;&amp;c2) // universal references!
    : a(std::forward(a2)),
      b(std::forward(b2))
</code></pre>
</blockquote>
<p>Ein weiterer Indikator dafür, dass C++11 viel zu kompliziert ist. Du müsstest <code>std::forward&lt;A2&gt;(a2)</code> schreiben, sonst ist das forward sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309350</guid><dc:creator><![CDATA[bashy]]></dc:creator><pubDate>Sun, 24 Mar 2013 18:10:49 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 18:15:35 GMT]]></title><description><![CDATA[<p>bashy schrieb:</p>
<blockquote>
<p>Ach meinst du?</p>
</blockquote>
<p>Ja, bestimmt. Man muss Typinferenz aber verhältnismässig einsetzen. Die Verlockung ist gerade für Konsistenz-Fanatiker da, nun überall <code>auto</code> hinzuschreiben. Ich benutze <code>auto</code> hauptsächlich für Iteratoren, und da ist es definitiv übersichtlicher als die ausgeschriebene Version.</p>
<p>bashy schrieb:</p>
<blockquote>
<p>Das range-based For ist sehr oft unnütz.</p>
</blockquote>
<p>Findest du? Ich finde es extrem nützlich. So nützlich, dass ich mir sogar ein Workaround-Makro für VS 2010 à la <code>BOOST_FOREACH</code> geschrieben habe. In vielen Fällen will ich schlicht etwas für alle Elemente tun, und da ist es perfekt.</p>
<p>Die Standardalgorithmen sind oft praktisch, aber teilweise muss man sie mit Lambdas oder <code>std::bind()</code> derart zurechtbiegen, dass ein Range-Based For massiv übersichtlicher ist. Ein Index ist nicht umständlicher als wenn du normale Iteratoren verwendest. Elemente überspringen kannst du mit <code>continue</code> .</p>
<p>bashy schrieb:</p>
<blockquote>
<p>Abgesehen davon ist die Unterstützung noch rudimentär.</p>
<pre><code class="language-cpp">for (int key, std::string const&amp; value : my_map) {} // nicht erlaubt
</code></pre>
</blockquote>
<p>Ich bezweifle, dass man das jemals einführen wird. Und</p>
<pre><code>for (auto pair : my_map)
</code></pre>
<p>ist schon eine massive Verbesserung zu vorher.</p>
<p>bashy schrieb:</p>
<blockquote>
<p>Was ich oft brauche ist von a bis b zählen, aber das geht auch wieder nicht.</p>
<pre><code class="language-cpp">for (int i : range(1, 10)) {} // geht nicht
</code></pre>
</blockquote>
<p>Doch, du musst <code>range()</code> halt einen sinnvollen Typen zurückgeben lassen. Mit vorhandenen Mitteln, dafür ineffizienter:</p>
<pre><code>std::vector&lt;int&gt; range(int begin, int end)
{
	std::vector&lt;int&gt; sequence(end - begin);
	std::iota(sequence.begin(), sequence.end(), begin);

	return sequence;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2309351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309351</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 18:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 19:29:07 GMT]]></title><description><![CDATA[<p>bashy hat schon recht gewissermaßen, C++ ist auch heute noch völlig kaputt. C++17 könnte die schlimmsten Fehler <strong>vielleicht</strong> fixen indem man das Kompilations(Kompilierungs?)-Model umbaut und den &quot;normalen&quot; Einsatz von Templates schmerzfrei macht, aber das wird den ganzen Ballast einer über 10-20(!) Jahre alten Sprachbasis trotzdem nicht los, weil niemand die &quot;backwards compatibility&quot; deutlich brechen will. Traurigerweise ist C++ trotz all dieser wirklich schrecklichen Fehler immer noch die angenehmste mir bekannte Sprache. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309383</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 24 Mar 2013 19:29:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 19:51:06 GMT]]></title><description><![CDATA[<p>bashy schrieb:</p>
<blockquote>
<p>So mache ich das auch. Aber es dürfte nur von wenigen benutzt werden, weil es nicht in der Standardbibliothek implementiert ist.</p>
</blockquote>
<p>Eben, Ranges sind als Bibliotheksfeature nicht vorhanden. Das hat nichts mit dem <strong>Sprachfeature</strong> Range-Based For Loop zu tun. Wie dir gezeigt wurde, wäre dieses mächtig genug.</p>
<p>bashy schrieb:</p>
<blockquote>
<p>Ein weiterer Indikator dafür, dass C++11 viel zu kompliziert ist.</p>
</blockquote>
<p>Neben den &quot;netten&quot; Features bietet C++11 eben vieles, um mehr Möglichkeiten für die generischen Programmierung zu bieten (z.B. Variadic Templates, Perfect Forwarding). Wenn du nicht gerade Boost-Bibliotheken schreibst, wirst du sowas sehr selten einsetzen.</p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>bashy hat schon recht gewissermaßen, C++ ist auch heute noch völlig kaputt. C++17 könnte die schlimmsten Fehler <strong>vielleicht</strong> fixen [...], aber das wird den ganzen Ballast einer über 10-20(!) Jahre alten Sprachbasis trotzdem nicht los, weil niemand die &quot;backwards compatibility&quot; deutlich brechen will.</p>
</blockquote>
<p>Das hat schon was. Traurigerweise macht man alles noch schlimmer, wenn man Dinge wie die Uniform Initialization schon <a href="http://www.c-plusplus.net/forum/313618" rel="nofollow">derart defekt</a> einführt, dass sie nie mehr geradezubiegen sind.</p>
<p>Ein rücksichtloser Schnitt wäre das einzige, was die Sprache retten könnte. Wird aber kaum passieren, daher muss langfristig eine andere Sprache her. Am ehesten käme noch D in Frage. <a href="http://stackoverflow.com/questions/743319/why-isnt-the-d-language-picking-up" rel="nofollow">Dieser Stackoverflow-Thread</a> beschreibt die Probleme von D, insbesondere im Bezug auf dessen Verbreitung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309389</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 19:51:06 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 21:36:41 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<pre><code>std::vector&lt;int&gt; sequence(end - begin);
std::iota(sequence.begin(), sequence.end(), begin);
</code></pre>
</blockquote>
<p>iota ist wohl ein weiteres Beispiel für eine völlig misslungene Funktion. Es macht aus meiner Sicht keinen Sinn, ein Iteratorenpaar anzugeben. Etwas im Stil von <code>copy_n</code> wäre angebrachter gewesen. Oder noch besser ein Iterator</p>
<pre><code class="language-cpp">std::copy_n(std::iota(begin), end-begin, std::back_inserter(sequence));
</code></pre>
<p>Oder auch</p>
<pre><code class="language-cpp">std::copy_n(std::iota(begin), end-begin, std::ostream_iterator&lt;int&gt;(std::cin, &quot;\n&quot;));
</code></pre>
<p>oder auch</p>
<pre><code class="language-cpp">std::for_each_n(std::iota(begin), end-begin, [](int i){
  // für alle i von begin bis end
});
</code></pre>
<p>Zur Namensgebung sage ich mal nichts, da sind die anderen Algorithmen auch nicht besser (von Streambufs ganz zu schweigen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309444</guid><dc:creator><![CDATA[bashy]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:36:41 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 21:50:52 GMT]]></title><description><![CDATA[<p>Dafür gibt's dann ja boost::iterator_facade oder wie es hieß!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309446</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:50:52 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 21:54:23 GMT]]></title><description><![CDATA[<p>Warum denn boost::, warum nicht std::?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309448</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to C++ vor 10 Jahren on Sun, 24 Mar 2013 22:46:56 GMT]]></title><description><![CDATA[<p>Vor 10 Jahren wurde afaik noch VC6 benutzt. Das waren noch geile Zeiten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309456</guid><dc:creator><![CDATA[vc6-fan]]></dc:creator><pubDate>Sun, 24 Mar 2013 22:46:56 GMT</pubDate></item></channel></rss>