<?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[Warum hat std::string keinen Construktor der zwei positionen nimmt]]></title><description><![CDATA[<p>Weiß jemand warum der &quot;substring constructor&quot; von String so aussieht</p>
<pre><code>string (const string&amp; str, size_t pos, size_t len = npos);
</code></pre>
<p>und nicht so:</p>
<pre><code>string (const string&amp; str, size_t pos, size_t endpos = npos);
</code></pre>
<p>?<br />
Das hätte z.B. den Vorteil, dass man als Parameter direkt Ergebnisse von std::string::find als Parameter nehmen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326960/warum-hat-std-string-keinen-construktor-der-zwei-positionen-nimmt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 26 May 2026 03:23:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326960.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Jul 2014 09:32:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 09:32:01 GMT]]></title><description><![CDATA[<p>Weiß jemand warum der &quot;substring constructor&quot; von String so aussieht</p>
<pre><code>string (const string&amp; str, size_t pos, size_t len = npos);
</code></pre>
<p>und nicht so:</p>
<pre><code>string (const string&amp; str, size_t pos, size_t endpos = npos);
</code></pre>
<p>?<br />
Das hätte z.B. den Vorteil, dass man als Parameter direkt Ergebnisse von std::string::find als Parameter nehmen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408885</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 16 Jul 2014 09:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 09:45:25 GMT]]></title><description><![CDATA[<p>Mir fallen spontan nur Sprachen ein die substring alle mit (index, length) anbieten. Irgendeiner muss immer rechnen um den zweiten Parameter zu bekommen, bei beiden Fällen. <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/2408887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408887</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Wed, 16 Jul 2014 09:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 11:29:23 GMT]]></title><description><![CDATA[<p>Verwende einfach std::find, dann kannst du zwei Iteratoren übergeben. Sparst dir so sogar den ersten Parameter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408899</guid><dc:creator><![CDATA[std__find]]></dc:creator><pubDate>Wed, 16 Jul 2014 11:29:23 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 11:36:34 GMT]]></title><description><![CDATA[<p>std__find schrieb:</p>
<blockquote>
<p>Verwende einfach std::find, dann kannst du zwei Iteratoren übergeben. Sparst dir so sogar den ersten Parameter.</p>
</blockquote>
<p>Thema verfehlt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408900</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 16 Jul 2014 11:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 12:33:22 GMT]]></title><description><![CDATA[<p>Beides geht nicht, weil gleiche Signatur. Wenn es so ginge wie du vorschlägst, gäbe es sicher Leute, die sich wundern, warum es nicht anders gelöst wurde.</p>
<p>Bei std::string haben sich aber viele schlaue Leute (bestimmt viel schlauer als du) Gedanken dazu gemacht und sich für die vorhandene Lösung entschieden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408910</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Wed, 16 Jul 2014 12:33:22 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 12:34:30 GMT]]></title><description><![CDATA[<p>std__find schrieb:</p>
<blockquote>
<p>Verwende einfach std::find, dann kannst du zwei Iteratoren übergeben. Sparst dir so sogar den ersten Parameter.</p>
</blockquote>
<p>Ist leider kein vollständiger Ersatz, da man damit nur nach einzelnen Zeichen suchen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408911</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 16 Jul 2014 12:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 13:01:33 GMT]]></title><description><![CDATA[<p>oenone schrieb:</p>
<blockquote>
<p>Bei std::string haben sich aber viele schlaue Leute (bestimmt viel schlauer als du) Gedanken dazu gemacht und sich für die vorhandene Lösung entschieden.</p>
</blockquote>
<p>Das ist wohl das unnötigste Argument, das man bringen kann.</p>
<p><a href="http://www.gotw.ca/gotw/084.htm" rel="nofollow">http://www.gotw.ca/gotw/084.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408924</guid><dc:creator><![CDATA[klugeleute]]></dc:creator><pubDate>Wed, 16 Jul 2014 13:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 13:52:16 GMT]]></title><description><![CDATA[<p>oenone schrieb:</p>
<blockquote>
<p>Bei std::string haben sich aber viele schlaue Leute (bestimmt viel schlauer als du) Gedanken dazu gemacht und sich für die vorhandene Lösung entschieden.</p>
</blockquote>
<p>Das vermute ich auch, aber gerade deshalb sollte es dazu valide Gründe geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408942</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 16 Jul 2014 13:52:16 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 13:58:58 GMT]]></title><description><![CDATA[<p>Ich finde halt, dass das Interface für den String generell recht stl untypisch ist. Während sonst immer mit Iteratoren und Ranges gearbeitet wird, verwendet String eher Indizes und Längen. Die sind zwar recht effizient ineinander überführbar, aber recht unkomfortabel und fehleranfällig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408945</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 16 Jul 2014 13:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 13:59:24 GMT]]></title><description><![CDATA[<p>Naja, es passt wunderbar zu std::string::substr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408946</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Wed, 16 Jul 2014 13:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 14:33:46 GMT]]></title><description><![CDATA[<p>Länge statt Endposition entfernt den Sonderfall &quot;Ende vor Anfang&quot;.<br />
Und es ist praktisch im Fall &quot;N Zeichen ab hier&quot;.</p>
<p>Ausserdem sind die begin/end Varianten ja bereits in Form der Iterator-Overloads verfügbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408949</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 16 Jul 2014 14:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 17:37:51 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>Ich finde halt, dass das Interface für den String generell recht stl untypisch ist. Während sonst immer mit Iteratoren und Ranges gearbeitet wird, verwendet String eher Indizes und Längen. Die sind zwar recht effizient ineinander überführbar, aber recht unkomfortabel und fehleranfällig.</p>
</blockquote>
<p>Es ist ja auch kein historischer Teil der STL, sondern der schon vorhandene String wurde zurecht gedoktort, damit er zumindest halbwegs der STL-Philosophie entspricht, an den Stellen, an denen das noch zu machen war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408984</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 16 Jul 2014 17:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Wed, 16 Jul 2014 17:40:48 GMT]]></title><description><![CDATA[<blockquote>
<p>Länge statt Endposition entfernt den Sonderfall &quot;Ende vor Anfang&quot;.</p>
</blockquote>
<p>Das ist kein Argument. Du (bzw. der Standard) kannst einfach sagen dass genau der Fall UB erzeugt. Wie soll das auch überhaupt passieren?</p>
<blockquote>
<p>Und es ist praktisch im Fall &quot;N Zeichen ab hier&quot;.</p>
</blockquote>
<p>Und zwei Positionen zu nehmen sind praktisch im Fall vom Zeichen i bis Zeichen j.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408987</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 16 Jul 2014 17:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Thu, 17 Jul 2014 10:40:20 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Länge statt Endposition entfernt den Sonderfall &quot;Ende vor Anfang&quot;.</p>
</blockquote>
<p>Das ist kein Argument. Du (bzw. der Standard) kannst einfach sagen dass genau der Fall UB erzeugt. Wie soll das auch überhaupt passieren?</p>
</blockquote>
<p>Natürlich ist es ein Argument - nur weil du es nicht verstehst heisst das nicht dass es keines wäre.<br />
Wenn es einen Sonderfall nicht gibt, dann stellt sich die Frage nicht was in dem Sonderfall passieren soll. Je weniger solcher Sonderfälle man dokumentieren/lernen muss, desto besser.</p>
<p>Wenn du's immer noch nicht verstehst, dann überleg dir einfach was besser ist: eine Funktion wo's 1000 mögliche Sonderfälle gibt, die dann alle dokumentiert und gelernt werden müssen, oder eine wo's bloss 1-2 mögliche Sonderfälle gibt.<br />
Und ja, das ist übertrieben, aber es ist <em>vom Prinzip her</em> genau das selbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409072</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 17 Jul 2014 10:40:20 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Thu, 17 Jul 2014 11:48:10 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Und zwei Positionen zu nehmen sind praktisch im Fall vom Zeichen i bis Zeichen j.</p>
</blockquote>
<p>Bis einschließlich j oder bis vor j? Wie das jeweils andere Verhalten hinbekommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409089</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Thu, 17 Jul 2014 11:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Warum hat std::string keinen Construktor der zwei positionen nimmt on Thu, 17 Jul 2014 11:55:33 GMT]]></title><description><![CDATA[<p>oenone schrieb:</p>
<blockquote>
<p>Bis einschließlich j oder bis vor j? Wie das jeweils andere Verhalten hinbekommen?</p>
</blockquote>
<p>bis vor j. In der STL sind Ranges immer exklusiv.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409092</guid><dc:creator><![CDATA[Ranger]]></dc:creator><pubDate>Thu, 17 Jul 2014 11:55:33 GMT</pubDate></item></channel></rss>