<?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++0x doch ohne Concepts]]></title><description><![CDATA[<p>Laut einem <a href="http://www.informit.com/guides/content.aspx?g=cplusplus&amp;seqNum=441" rel="nofollow">Artikel</a> von Danny Kalev sei am 13.7.2009 beim Kommitee-Treffen in Frankfurt entschieden worden, Concepts wieder aus dem Entwurf zu schmeißen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Mehr fällt mir dazu im Augenblick auch nicht ein.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245736/c-0x-doch-ohne-concepts</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 12:57:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245736.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Jul 2009 21:04:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 21:04:51 GMT]]></title><description><![CDATA[<p>Laut einem <a href="http://www.informit.com/guides/content.aspx?g=cplusplus&amp;seqNum=441" rel="nofollow">Artikel</a> von Danny Kalev sei am 13.7.2009 beim Kommitee-Treffen in Frankfurt entschieden worden, Concepts wieder aus dem Entwurf zu schmeißen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Mehr fällt mir dazu im Augenblick auch nicht ein.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745067</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Fri, 17 Jul 2009 21:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 21:09:01 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745068</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Fri, 17 Jul 2009 21:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 21:12:03 GMT]]></title><description><![CDATA[<p>Interessant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745069</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 17 Jul 2009 21:12:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 21:17:15 GMT]]></title><description><![CDATA[<p>Fällt damit nicht auch die foreach-Schleife weg? Ich meine mal gehört zu haben, dass sie auf Concepts beruht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745072</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 17 Jul 2009 21:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 21:32:14 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Mehr fällt mir dazu im Augenblick auch nicht ein.</p>
</blockquote>
<p>Ist vielleicht nicht das Schlechteste. Viele befürchten ja, dass ein so riesiges Sprachfeature, das auf einen Schlag hinzugefügt wird, zu Problemen führen könnte. Man hat nicht besonders viel Erfahrung damit (soweit ich weiss, nur ein paar Prototypen wie ConceptGCC), und könnte einiges riskieren.</p>
<p>Naja, ich kann das natürlich auch nicht genau beurteilen, aber mir ist es lieber, wenn ich noch ein wenig warte, und dafür eine sauberere und durchdachtere Implementierung habe. Zumal Concepts nicht unbedingt das Feature ist, nach dem ich mich schon seit Ewigkeiten sehne... <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745080</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 17 Jul 2009 21:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 21:43:29 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Fällt damit nicht auch die foreach-Schleife weg? Ich meine mal gehört zu haben, dass sie auf Concepts beruht.</p>
</blockquote>
<p>du hast doch noch auto und decltype.<br />
das allein genügt.<br />
#define foreach(cont) for(decltype(cont)::iterator i=cont.begin(),e=cont.end;i!=e;++i)<br />
oder<br />
#define foreach(cont) for(auto i=cont.begin(),e=cont.end;i!=e;++i)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745087</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 17 Jul 2009 21:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 22:01:03 GMT]]></title><description><![CDATA[<p>Tja, schade. Wobei ich die Argumente durchaus verstehen kann. Immerhin muss man nun nicht mehr 2 Bücher für einen C++ Lernkurs einplanen, sondern nur noch 1 - 1,5 Bücher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Vielleicht wäre es echt eine Idee, die Sache deutlich zu schrumpfen und es viel mehr als Hilfe für Templates zu bauen und nicht als komplettes, zusätzliches, neues und ergänzendes Sprachfeature.</p>
<p>Ich würde es zum Beispiel sehr schätzen, wenn ein Konzept von einem Funktionstemplate oder Klassentemplate automatisch erstellt würde. Irgendsowas muss der Parser und Kompiler im Hintergrund sowieso bereits haben. Und darauf dann nur noch eine Art von <code>concept_map</code> für das entsprechende umbiegen. Das wäre einfacher für den Programmierer und bereits etwas sehr tolles.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745094</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 17 Jul 2009 22:01:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 22:07:23 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Man hat nicht besonders viel Erfahrung damit (soweit ich weiss, nur ein paar Prototypen wie ConceptGCC), und könnte einiges riskieren.</p>
</blockquote>
<p>Das sind ja auch gute Gründe.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Zumal Concepts nicht unbedingt das Feature ist, nach dem ich mich schon seit Ewigkeiten sehne... <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="😉"
    /></p>
</blockquote>
<p>Naja, &quot;modular type checking for templates&quot; -- wie es Doug Gregor in seinem Vortrag nannte -- wäre schon nett gewesen. Nicht nur, um die ätzenden Fehlermeldungen loszuwerden, sondern auch als Ersatz für all die Template-Tricks (SFINAE,...).</p>
<p>Welches sind denn Eure Top 3 C++0x Sprach-Features? Von dem, was noch übrig ist, würde ich sagen: Rvalue-Referenzen, Variadische Template und Typinferenz (auto, decltype).</p>
<p>Wovon ich nicht so richtig überzeugt bin ist &quot;thread_local&quot; als Speicherklasse.</p>
<p>volkard schrieb:</p>
<blockquote>
<p>du hast doch noch auto und decltype.</p>
</blockquote>
<p>Ja, damit würde es gehen. Ich würde aber immernoch den &quot;Umweg&quot; über eine Traits-Klasse (als Concept/Concept Map-Ersatz) machen. Also in etwa so:</p>
<pre><code>for ([i]#1[/i] : [i]#2[/i]) {
  [i]#3[/i]
}
</code></pre>
<p>==[ersetzen durch]==&gt;</p>
<pre><code>{
  auto &amp;&amp; _range = [i]#2[/i];
  typedef typename remove_reference&lt;decltype(_range)&gt;::type __RangeType;
  typedef range_traits&lt;__RangeType&gt; __RangeTraits;
  for (auto _beg = __RangeTraits::begin(_range),
            _end = __RangeTraits::end(_range);
       _beg != _end; ++_beg)
  {
    [i]#1[/i] = *_beg;
    [i]#3[/i]
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1745097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745097</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Fri, 17 Jul 2009 22:07:23 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 22:14:33 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Welches sind denn Eure Top 3 C++0x Sprach-Features? Von dem, was noch übrig ist, würde ich sagen: Rvalue-Referenzen, Variadische Template und Typinferenz (auto, decltype).<br />
Wovon ich nicht so richtig überzeugt bin ist &quot;thread_local&quot; als Speicherklasse.</p>
</blockquote>
<p>Genau. Diese vier sind es.<br />
Und: Compilezeitaufrufbare Funktionen.</p>
<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>==[ersetzen durch]==&gt;</p>
</blockquote>
<p>Das ist &quot;Jede Sprache, die was taugt, tendiert dazu, Lisp zu sein&quot;.<br />
Ja, ich hätte gerne Zugriff auf den Parsebaum und würde ihn frei ummodeln können. Aber ich habe zugleich auch Angst davor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745100</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 17 Jul 2009 22:14:33 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 22:18:34 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Welches sind denn Eure Top 3 C++0x Sprach-Features?</p>
</blockquote>
<p>Alles? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also von neuen Sprachfeatures:<br />
1. auto, decltype -&gt; vielleicht in diesem Zusammenhang auch die neue Funktionsdeklaration.<br />
2. variadic templates<br />
3. Lambda Funktionen</p>
<p>Bibliothekfeatures:<br />
1. Bind/Functions (wobei das natürlich schon im tr1 dabei ist)<br />
2. Threads<br />
3. Futures (oder gehört das zu Threads?)</p>
<p>Aber der ganze Rest ist natürlich auch toll. Gibt glaub ich kein neues Feature, auf welches ich mich nicht freue.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745101</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 17 Jul 2009 22:18:34 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 22:26:56 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>==[ersetzen durch]==&gt;</p>
</blockquote>
<p>Das ist &quot;Jede Sprache, die was taugt, tendiert dazu, Lisp zu sein&quot;.<br />
Ja, ich hätte gerne Zugriff auf den Parsebaum und würde ihn frei ummodeln können. Aber ich habe zugleich auch Angst davor.</p>
</blockquote>
<p>Hä? Die Idee von dem for-range loop war schon immer, dem Compiler vorzuschreiben, dass er eine solche (oder äquivalente) Ersetzung durchführen soll, sofern der Typ von _range kein Array oder keine Initializer-List ist. Ich habe lediglich das Concept Range&lt;X&gt; durch die Traits-Klasse range_traits&lt;X&gt; ersetzt.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745103</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Fri, 17 Jul 2009 22:26:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 22:42:49 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Hä?</p>
</blockquote>
<p>Ups, bin über das Ziel hinausgeschossen.<br />
Ich wünsche mir seit Jahren, daß man das &quot;==[ersetzen durch]==&gt;&quot; selber definieren kann. Ich habe eh ganz andere Wünsche als mein Nächster. Die best practices kann man ja dann standardisieren.<br />
Jede Einführung von mehr Compilermagie-Klassen lehne ich dagegen ab. std::string aus std::exception aus new bringt mich regelmäßig zum weinen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745109</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 17 Jul 2009 22:42:49 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Fri, 17 Jul 2009 23:26:55 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Man hat nicht besonders viel Erfahrung damit (soweit ich weiss, nur ein paar Prototypen wie ConceptGCC), und könnte einiges riskieren.</p>
</blockquote>
<p>Das sind ja auch gute Gründe.</p>
</blockquote>
<p>Die wesentlichen, IMHO. Genau derselbe Fehler wie bei export.</p>
<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Welches sind denn Eure Top 3 C++0x Sprach-Features?</p>
</blockquote>
<p>Lambda-Funktionen, Typinferenz, Variadic Templates.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745120</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Fri, 17 Jul 2009 23:26:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 03:40:20 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>std::string aus std::exception aus new bringt mich regelmäßig zum weinen.</p>
</blockquote>
<p>Äääääh? Wo bekommst du nen std::string aus ner std::exceptions???<br />
what() gibt nicht ohne Grund nen char const* zurück...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745135</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 18 Jul 2009 03:40:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 06:56:30 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Wovon ich nicht so richtig überzeugt bin ist &quot;thread_local&quot; als Speicherklasse.</p>
</blockquote>
<p>Naja, wie es ausschaut haben die ThreadLocal in Java (und anderen Sprachen?) genügend beeindruckt ums auch in C++ zu übernehmen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745145</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 18 Jul 2009 06:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 09:21:35 GMT]]></title><description><![CDATA[<p>Ich bin überrascht, das doch noch was (größeres) raus fliegt. Interessant und hilfreich wären sie ja auf jeden Fall gewesen. Aber es ist kein Beinbruch.</p>
<p>Was ich mir auf jeden Fall wünsche sind neue Bibliotheken. Sprachfeatures haben wir eigentlich genug. Man kann immer wieder was verbessern, ich finde z.B. Lambdas und das auto-Keyword super.</p>
<p>Aber freuen würde ich mich wenn endlich mal die Std-Lib erweitert wird. Und nein, nicht um GUI o.ä. Sondern um Filesystem, Date and Time und Netzwerk. Das was man auf jedem System (Desktop, Server und Embedded) am ehesten benötigt. Die Thread-Lib in C++0x ist schon mal ein sehr guter Anfang. Ich hoffe das bald C++0x endlich verabschiedet wird und es ruck zuck an TR2 geht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745163</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 18 Jul 2009 09:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 10:10:49 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Aber freuen würde ich mich wenn endlich mal die Std-Lib erweitert wird. Und nein, nicht um GUI o.ä. Sondern um Filesystem, Date and Time und Netzwerk. Das was man auf jedem System (Desktop, Server und Embedded) am ehesten benötigt. Die Thread-Lib in C++0x ist schon mal ein sehr guter Anfang. Ich hoffe das bald C++0x endlich verabschiedet wird und es ruck zuck an TR2 geht!</p>
</blockquote>
<p>Das sehe ich gleich. Obwohl lambda und co. ganz toll sind, &quot;braucht&quot; man sie nicht wirklich, da man das es (meist) Lösungen mit dem aktuellen Standard gibt. Wohingegen man bei einem Filesystem (rein Sprachbezogen) aufgeschmissen ist. Man muss auf externe Bibliotheken zugreifen (oder nat. alles selbst schreiben). Aber wie du schon sagst ist Thread alleine schon sehr nett. Vor allem als Basis von Netzwerken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745179</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jul 2009 10:10:49 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 11:43:43 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Obwohl lambda und co. ganz toll sind, &quot;braucht&quot; man sie nicht wirklich, da man das es (meist) Lösungen mit dem aktuellen Standard gibt.</p>
</blockquote>
<p>Gerade bei Lambda-Funktionen finde ich das Argument unangebracht. Workarounds wie boost.lambda sind oftmals eher eine Last denn eine Hilfe; das Scope-Capturing läßt sich nunmal nicht mit Bibliotheksfeatures simulieren. Ähnliches gilt für BOOST_TYPEOF.</p>
<p>Bibliothekserweiterungen sind schön und gut, aber real viel zu spät - mittlerweile verwendet ohnehin jeder seinen ganz persönlichen Workaround. Viel wichtiger finde ich die Erweiterung der Sprachmöglichkeiten, also Dinge, die man nicht über externe Bibliotheken nachrüsten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745241</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sat, 18 Jul 2009 11:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 11:55:00 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Obwohl lambda und co. ganz toll sind, &quot;braucht&quot; man sie nicht wirklich, da man das es (meist) Lösungen mit dem aktuellen Standard gibt.</p>
</blockquote>
<p>Gerade bei Lambda-Funktionen finde ich das Argument unangebracht. Workarounds wie boost.lambda sind oftmals eher eine Last denn eine Hilfe; das Scope-Capturing läßt sich nunmal nicht mit Bibliotheksfeatures simulieren.</p>
</blockquote>
<p>Ja, aber ich meinte, dass man es nicht wirklich braucht. Man hat dann halt eine etwas unleserliche Syntax und mehr arbeit, wenn man halt einen Funktor schreiben muss, aber grundsätzlich geht das, was man erreichen will. Keine Frage es ist umständlicher und Mehrarbeit, aber es geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745250</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jul 2009 11:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 12:13:10 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Ja, aber ich meinte, dass man es nicht wirklich braucht. Man hat dann halt eine etwas unleserliche Syntax und mehr arbeit, wenn man halt einen Funktor schreiben muss, aber grundsätzlich geht das, was man erreichen will. Keine Frage es ist umständlicher und Mehrarbeit, aber es geht.</p>
</blockquote>
<p>Diese Argumentation führt zwangsläufig zu C zurück. Oder ziehst du eine willkürliche Grenze?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745267</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sat, 18 Jul 2009 12:13:10 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 12:27:14 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Ja, aber ich meinte, dass man es nicht wirklich braucht. Man hat dann halt eine etwas unleserliche Syntax und mehr arbeit, wenn man halt einen Funktor schreiben muss, aber grundsätzlich geht das, was man erreichen will. Keine Frage es ist umständlicher und Mehrarbeit, aber es geht.</p>
</blockquote>
<p>Diese Argumentation führt zwangsläufig zu C zurück. Oder ziehst du eine willkürliche Grenze?</p>
</blockquote>
<p>Das führt noch weiter zurück. <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="😉"
    /> - Nein, nicht willkürlich, aber irgendwo muss eine Balance her. Mir persönlich brächte es mehr, wenn ich eine anständige Lib für Netzwerk an die Hand gelegt bekäme, als eine Lib, die es mir ermöglicht lambda Funktionen zu schreiben. Die Grenze ist natürlich subjektiv und hängt auch ab, in welchem Bereich man vor hat die Features zu nutzen..</p>
<p>Stell dir das umgekehrte vor. Du hast eine Sprache, die dir etliche Sprachfeatures bietet, jedoch nicht einmal eine Bibliothek für String Verarbeitung bietet. Auch nicht so toll, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745276</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jul 2009 12:27:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 12:29:57 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Ja, aber ich meinte, dass man es nicht wirklich braucht. Man hat dann halt eine etwas unleserliche Syntax und mehr arbeit, wenn man halt einen Funktor schreiben muss, aber grundsätzlich geht das, was man erreichen will. Keine Frage es ist umständlicher und Mehrarbeit, aber es geht.</p>
</blockquote>
<p>Diese Argumentation führt zwangsläufig zu C zurück. Oder ziehst du eine willkürliche Grenze?</p>
</blockquote>
<p>Falsch! Diese Argumentation führt zu Assembler zurück. Oder wir geben gleich selber 0 und 1 ein. Mehr brauchen wir ja nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Es scheint aber ziemlich eindeutig zu sein, dass er hier eine subjektive Grenze zieht.</p>
<p>Edit: Zu spät, da hat drakon schon selber geantwortet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>audacia schrieb:</p>
<blockquote>
<p>Bibliothekserweiterungen sind schön und gut, aber real viel zu spät - mittlerweile verwendet ohnehin jeder seinen ganz persönlichen Workaround. Viel wichtiger finde ich die Erweiterung der Sprachmöglichkeiten, also Dinge, die man nicht über externe Bibliotheken nachrüsten kann.</p>
</blockquote>
<p>Ich stimme dir zwar zu, dass man viel zu spät ist, aber trotzdem ist es nützlich. Die alte Software wird bei seinen Workarounds bleiben, die neuen dagegen können endlich auf einen Standard setzen. Vielleicht gibt es ja sogar ein paar alte Softwaresystem, welche wechseln werden <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="😉"
    /></p>
<p>Ich bin allerdings gespannt, was Boost machen wird. Gibt es da schon eine Aussage von den Entwicklern?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745278</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 18 Jul 2009 12:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 12:45:57 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Stell dir das umgekehrte vor. Du hast eine Sprache, die dir etliche Sprachfeatures bietet, jedoch nicht einmal eine Bibliothek für String Verarbeitung bietet. Auch nicht so toll, oder?</p>
</blockquote>
<p>Nein, aber so ähnlich sieht es bei C++ ja aus. Da C++ aus verschiedenen Gründen dennoch relativ große Marktdurchdringung hat, haben sich eben Alternativbibliotheken gefunden und mehr oder weniger etabliert.</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Ich stimme dir zwar zu, dass man viel zu spät ist, aber trotzdem ist es nützlich. Die alte Software wird bei seinen Workarounds bleiben, die neuen dagegen können endlich auf einen Standard setzen. Vielleicht gibt es ja sogar ein paar alte Softwaresystem, welche wechseln werden <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="😉"
    /></p>
</blockquote>
<p>Ja, natürlich ist es nützlich, und ich begrüße außerordentlich, daß die Standardbibliothek mit einer Threading-Library und den anderen vorgeschlagenen praxisorientierten Erweiterungen mal etwas weiter in die reale Welt tritt. Aber all das ist nichts, was es nicht jetzt schon gäbe, nur steht eben &quot;Standard&quot; drauf. Deshalb finde ich Sprachfeatures, die es in C++ noch nicht gibt, bei weitem wichtiger.</p>
<p>Eine Sprachbibliothek muß die Balance finden zwischen einem Minimalkompromiß, der in vielen Bereichen nur beschränkten praktischen Nutzwert bietet (dem ist die gegenwärtige C++-Standardbibliothek recht nahe) und einer voll ausgestatteten &quot;Featuritis&quot;-Bibliothek (z.B. die Java-Library oder das .NET-Framework), die viel schneller zum Ballast wird, als mancher wahrhaben mag. Einen interessanten und, wie ich finde, sehr attraktiven Mittelweg gehen Rich-Client-Frameworks wie VCL und Qt - aber ob das der richtige Ansatz für die C++-Standardbibliothek wäre, weiß ich nicht so recht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745285</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sat, 18 Jul 2009 12:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 13:29:33 GMT]]></title><description><![CDATA[<p>Kann mir mal jemand den Sinn von Rvalue-Referenzen erklären? Irgendwie blicke ich den Thread zur Vorstellung der Rvalues nicht:</p>
<pre><code class="language-cpp">string operator + (string const&amp; a, string const&amp; b)
{
   string tmp (a);
   tmp += b;
   return tmp;
}

string a (&quot;this &quot;);
string b = a + &quot;a&quot; + &quot;b&quot; + &quot;cd&quot;;
</code></pre>
<p>a + &quot;a&quot; ruft doch nicht operator + (string const&amp; a, string const&amp; b) auf (wieso zur Hölle den konstante Referenzen), sondern operator +(string&amp; a, const char* b)?!<br />
Und was verschiebt sich dann hier???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745310</guid><dc:creator><![CDATA[Hä?]]></dc:creator><pubDate>Sat, 18 Jul 2009 13:29:33 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 14:03:11 GMT]]></title><description><![CDATA[<p>Ach, das brauchst du net zu checken! im neuen c++ ist so viel mist drin, den man nie braucht. eigene literale braucht z.b. kein schwein, dynamische template-anzahl ist zwar ganz nett, kann man auch 1 mal in 40 jahren gebrauchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
lambda-funktionen und decltypes sind der allerletzte dreck, dank dieser schreibweise ist man nun endgültig verloren, fremden code je nachvollziehen zu können:</p>
<pre><code class="language-cpp">auto concept Bla &lt;typename A, typename B&gt;
{
   operator +(A const&amp;, B const&amp;);
}

template &lt;typename T, typename B, ...Args&gt; requires Bla&lt;T, B&gt;
auto foo(T&amp; a, B&amp; b, Args&amp;&amp; ... args) -&gt; decltype(a + b) {
   return a + b;
}
</code></pre>
<p>ist doch totaler müll!!! braucht kein mensch!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745324</guid><dc:creator><![CDATA[Eggy]]></dc:creator><pubDate>Sat, 18 Jul 2009 14:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++0x doch ohne Concepts on Sat, 18 Jul 2009 14:12:38 GMT]]></title><description><![CDATA[<p>Hä? schrieb:</p>
<blockquote>
<p>Kann mir mal jemand den Sinn von Rvalue-Referenzen erklären?</p>
</blockquote>
<p>Der Sinn ist mehrfach dokumentiert:<br />
<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2027.html" rel="nofollow">N2027: A Brief Introduction to Rvalue References</a><br />
<a href="https://www.boostpro.com/trac/wiki/BoostCon09/RValue101" rel="nofollow">Rvalue Reference 101</a></p>
<p>Hä? schrieb:</p>
<blockquote>
<pre><code class="language-cpp">string operator + (string const&amp; a, string const&amp; b)
{
   string tmp (a);
   tmp += b;
   return tmp;
}

string a (&quot;this &quot;);
string b = a + &quot;a&quot; + &quot;b&quot; + &quot;cd&quot;;
</code></pre>
<p>a + &quot;a&quot; ruft doch nicht operator + (string const&amp; a, string const&amp; b) auf (wieso zur Hölle den konstante Referenzen), sondern operator +(string&amp; a, const char* b)?!</p>
</blockquote>
<p>Ich denke, das Beispiel, was Du zitierst, geht nicht davon aus, dass es einen operator+(string const&amp;, char const*) gibt. Nimm der Einfachheit wegen an, dass &quot;string&quot; eine eigene Klasse ist:</p>
<pre><code class="language-cpp">class string {
  .....
public:
  string();
  string(char const*);
  string&amp; operator+=(string const&amp; x);
  .....
};
</code></pre>
<p>Nimm weiter an, dass die folgenden operator+ Funktionen die einzigen sind, die auf string arbeiten:</p>
<pre><code class="language-cpp">string operator+(string const&amp; lhs, string const&amp; rhs)
{
  string tmp;
  tmp.reserve(lhs.length() + rhs.length());
  tmp += lhs;
  tmp += rhs;
  return tmp;
}

string operator+(string &amp;&amp; lhs, string const&amp; rhs)
{
  lhs += rhs;
  return std::move(lhs);
}
</code></pre>
<p>Wo ist nun das Problem?</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745328</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sat, 18 Jul 2009 14:12:38 GMT</pubDate></item></channel></rss>