<?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[std::string::operator=( char c )]]></title><description><![CDATA[<p>Hi,</p>
<p>mich nervt der <code>operator=(char c)</code> der std::string Klasse total. Geht euch das nicht so? Kürzlich erst:</p>
<pre><code class="language-cpp">std::string s = Var;
</code></pre>
<p>&quot;Var&quot; war erst ein string und ist dann zum integer geworden. Ich dachte, der Compiler zeigt mir alle Probleme auf, Typsicherheit und so, aber nix da. Grml!</p>
<p>Musste ich nur mal loswerden.</p>
<p>Versteh ich echt nicht, op=(char) braucht man doch praktisch nie. Und wenn, tut's ein assign oder so auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/284700/std-string-operator-char-c</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 22:08:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/284700.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Apr 2011 11:25:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 11:25:06 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>mich nervt der <code>operator=(char c)</code> der std::string Klasse total. Geht euch das nicht so? Kürzlich erst:</p>
<pre><code class="language-cpp">std::string s = Var;
</code></pre>
<p>&quot;Var&quot; war erst ein string und ist dann zum integer geworden. Ich dachte, der Compiler zeigt mir alle Probleme auf, Typsicherheit und so, aber nix da. Grml!</p>
<p>Musste ich nur mal loswerden.</p>
<p>Versteh ich echt nicht, op=(char) braucht man doch praktisch nie. Und wenn, tut's ein assign oder so auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2045411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045411</guid><dc:creator><![CDATA[Orrrrk]]></dc:creator><pubDate>Wed, 06 Apr 2011 11:25:06 GMT</pubDate></item><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 11:57:57 GMT]]></title><description><![CDATA[<p>Was du da gepostet hast ist aber nicht der op=, sondern der Konstruktor. Und einen Ctor, der ein char oder einen passenden Typ erwartet, gibts nicht.</p>
<p>Wenn du einfach den Typen einer Variablen änderst, solltest du auch gleich schauen, wo du damit gearbeitet hast und die Stellen entsprechend anpassen. Das Problem ist hausgemacht, dafür solltest du also nicht die Sprache verantwortlich machen <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/2045429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045429</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 06 Apr 2011 11:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 12:29:08 GMT]]></title><description><![CDATA[<p>Ja ja, ich meinte eigentlich</p>
<pre><code class="language-cpp">std::string s;
s = IntVar;
</code></pre>
<p>Hausgemacht klar, aber ich will Typsicherheit. Und Prinicplie of Least Surprise. Und ich war richtig surprised.</p>
<p>Stört dich das echt nicht, ist dir das noch nie über den Weg gelaufen??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2045446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045446</guid><dc:creator><![CDATA[Orrrrk]]></dc:creator><pubDate>Wed, 06 Apr 2011 12:29:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 12:31:31 GMT]]></title><description><![CDATA[<p>Ich versteh nicht was die Überraschung sein soll. Was dachtest du denn sei in s danach drin und was war stattdessen drin?.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2045450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045450</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 06 Apr 2011 12:31:31 GMT</pubDate></item><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 12:39:36 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Ich versteh nicht was die Überraschung sein soll. Was dachtest du denn sei in s danach drin und was war stattdessen drin?.</p>
</blockquote>
<p>s war ja erst int und irgendwo z.B. wurde ihm -1 als ungültige ID zugewiesen. Ich hatte gar nicht erst damit gerechnet, dass <code>s=-1</code> kompiliert (mit s als std::string), das war die Überraschung. Bei <code>s=123</code> wäre für mich die geringste Überraschung eine int-to-str-Konvertierung; jedenfalls prinzipiell, für C++ weiß ich ja, dass es das so nicht gibt. Aber dass bei <code>s=65</code> ein <code>s==&quot;A&quot;</code> herauskommt, das finde ich allermäßigst unintuitiv.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2045456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045456</guid><dc:creator><![CDATA[Orrrrk]]></dc:creator><pubDate>Wed, 06 Apr 2011 12:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 12:40:49 GMT]]></title><description><![CDATA[<p>Orrrrk schrieb:</p>
<blockquote>
<p>Ja ja, ich meinte eigentlich</p>
<pre><code class="language-cpp">std::string s;
s = IntVar;
</code></pre>
<p>Hausgemacht klar, aber ich will Typsicherheit. Und Prinicplie of Least Surprise. Und ich war richtig surprised.</p>
</blockquote>
<p>Verständlich. Zumal das einer der Fälle ist, wo man die implizite Konvertierung int -&gt; char im Hinterkopf haben sollte, aber nicht unbedingt hat.</p>
<blockquote>
<p>Stört dich das echt nicht,</p>
</blockquote>
<p>Wenig. Dass die Konvertierung int-&gt;char möglich ist, ist eines der üblichen Verdächtigen bei Problemen. Wenn ich also mit strings und Ganzzahlen zu tun hab denke ich an sowas.</p>
<blockquote>
<p>ist dir das noch nie über den Weg gelaufen??</p>
</blockquote>
<p>Kann ich mich nicht dran erinnern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2045457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045457</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 06 Apr 2011 12:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to std::string::operator=( char c ) on Wed, 06 Apr 2011 12:50:39 GMT]]></title><description><![CDATA[<p>Orrrrk schrieb:</p>
<blockquote>
<p>Aber dass bei <code>s=65</code> ein <code>s==&quot;A&quot;</code> herauskommt, das finde ich allermäßigst unintuitiv.</p>
</blockquote>
<p>Das kommt halt darauf an aus welcher Ecke man kommt. Für mich war bei irgendwelchen Skriptsprachen ein <code>s=65</code> -&gt; <code>s==&quot;65&quot;</code> zunächstmal sehr überraschend (was nicht heißen soll, dass das durchaus intuitiv und bequem sein kann).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2045460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2045460</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 06 Apr 2011 12:50:39 GMT</pubDate></item></channel></rss>