<?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[String nach Zahl klappt nicht]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe mir eine Funktion geschrieben um einen String zu einem Typ zu konvertieren:</p>
<pre><code class="language-cpp">template &lt;typename T&gt; T fromString(const std::string&amp; str) {
	T value;
	std::istringstream stream(str);
	stream &gt;&gt; value;
	return value;
}
</code></pre>
<p>Leider gibt das diese Fehlermeldung:</p>
<blockquote>
<p>error C2678: binary '&gt;&gt;' : no operator found which takes a left-hand operand of type 'std::istringstream' (or there is no acceptable conversion)</p>
</blockquote>
<p>Wieso? Was ist denn da falsch? <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288546/string-nach-zahl-klappt-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 23:00:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288546.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Jun 2011 19:43:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 19:43:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe mir eine Funktion geschrieben um einen String zu einem Typ zu konvertieren:</p>
<pre><code class="language-cpp">template &lt;typename T&gt; T fromString(const std::string&amp; str) {
	T value;
	std::istringstream stream(str);
	stream &gt;&gt; value;
	return value;
}
</code></pre>
<p>Leider gibt das diese Fehlermeldung:</p>
<blockquote>
<p>error C2678: binary '&gt;&gt;' : no operator found which takes a left-hand operand of type 'std::istringstream' (or there is no acceptable conversion)</p>
</blockquote>
<p>Wieso? Was ist denn da falsch? <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080320</guid><dc:creator><![CDATA[stringer2]]></dc:creator><pubDate>Sat, 18 Jun 2011 19:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 19:47:32 GMT]]></title><description><![CDATA[<p>Ich habe gerade rausgefunden, dass es offenbar mit dem Typ zusammenhängt:</p>
<pre><code class="language-cpp">fromString&lt;int&gt;(str); // Das hier kompiliert
fromString&lt;EXT_ST&gt;(str); // Das hier nicht. EXT_ST ist ein enum
</code></pre>
<p>Wieso geht das bei einem enum nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080324</guid><dc:creator><![CDATA[stringer2]]></dc:creator><pubDate>Sat, 18 Jun 2011 19:47:32 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 19:48:27 GMT]]></title><description><![CDATA[<p>Habs mit gcc probiert.<br />
Es klappt.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sstream&gt;

template &lt;typename T&gt; T fromString(const std::string&amp; str) {
    T value;
    std::istringstream stream(str);
    stream &gt;&gt; value;
    return value;
}
int main(){
    std::string str=&quot;4711&quot;;
    int i=fromString&lt;int&gt;(str);
    std::cout&lt;&lt;i&lt;&lt;'\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2080326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080326</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 18 Jun 2011 19:48:27 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 19:48:49 GMT]]></title><description><![CDATA[<p>Der Operator &gt;&gt; muss für den Typen implementiert sein, damit das klappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080327</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jun 2011 19:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 19:59:54 GMT]]></title><description><![CDATA[<p>Häßlich, langsam und grausam, aber tut's erstmal erklären, wo der Hase im Pfeffer liegt.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sstream&gt;

enum Farbe{
    rot=1,
    tot=rot,
    blau=2,
};

std::istream &amp;operator&gt;&gt;(std::istream&amp; in,Farbe&amp; f){
    std::string name;
    in&gt;&gt;name;
    if(name==&quot;rot&quot;)
        f=Farbe::rot;
    else if(name==&quot;tot&quot;)
        f=Farbe::tot;
    else if(name==&quot;blau&quot;)
        f=Farbe::blau;
    else
        ;//??
    return in;
}

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out,Farbe f){
    if(f==Farbe::rot)
        out&lt;&lt;&quot;rot&quot;;
    //else...
    return out;
}

template &lt;typename T&gt; T fromString(const std::string&amp; str) {
    T value;
    std::istringstream stream(str);
    stream &gt;&gt; value;
    return value;
}
int main(){
    std::string str=&quot;rot&quot;;
    Farbe i=fromString&lt;Farbe&gt;(str);
    std::cout&lt;&lt;i&lt;&lt;'\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2080329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080329</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 18 Jun 2011 19:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:12:42 GMT]]></title><description><![CDATA[<p>Ich seh gerade, du schreibst Farbe::rot. Ich schreibe in meinem Code immer nur rot. Ich wusste garnicht, dass das mit EnumTyp::Value geht?!? <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080337</guid><dc:creator><![CDATA[stringer2]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:28:47 GMT]]></title><description><![CDATA[<p>stringer2 schrieb:</p>
<blockquote>
<p>Ich seh gerade, du schreibst Farbe::rot. Ich schreibe in meinem Code immer nur rot. Ich wusste garnicht, dass das mit EnumTyp::Value geht?!? <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="😕"
    /></p>
</blockquote>
<p>Eine Neuerung von C++0x?<br />
Ja. <a href="http://www2.research.att.com/~bs/C++0xFAQ.html#enum" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#enum</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080341</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:44:06 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>stringer2 schrieb:</p>
<blockquote>
<p>Ich seh gerade, du schreibst Farbe::rot. Ich schreibe in meinem Code immer nur rot. Ich wusste garnicht, dass das mit EnumTyp::Value geht?!? <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="😕"
    /></p>
</blockquote>
<p>Eine Neuerung von C++0x?<br />
Ja. <a href="http://www2.research.att.com/~bs/C++0xFAQ.html#enum" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#enum</a></p>
</blockquote>
<p>Klappt bei mir (VS2010) nicht. enum class Color gibt einen Compiler error und enum Color { ... } Color c = Color::red gibt ein Warning:(</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080345</guid><dc:creator><![CDATA[stringer2]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:44:06 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:52:54 GMT]]></title><description><![CDATA[<p>stringer2 schrieb:</p>
<blockquote>
<p>Klappt bei mir (VS2010) nicht. enum class Color gibt einen Compiler error und enum Color { ... } Color c = Color::red gibt ein Warning:(</p>
</blockquote>
<p>Mach die doch einfach aus mit</p>
<pre><code class="language-cpp">#pragma warning(disable,4482)
</code></pre>
<p>Ich würde aber nochmal eine zweite Meinung einholen, ob das wirklich mit c++0x erlaubt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080349</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:50:59 GMT]]></title><description><![CDATA[<p>MSVC 2010 beherrscht strongly-typed enums (soweit ich weiß) nur in C++/CLI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080350</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:53:51 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>stringer2 schrieb:</p>
<blockquote>
<p>Klappt bei mir (VS2010) nicht. enum class Color gibt einen Compiler error und enum Color { ... } Color c = Color::red gibt ein Warning:(</p>
</blockquote>
<p>Mach die doch einfach aus mit</p>
<pre><code class="language-cpp">#pragma warning(disable,4482)
</code></pre>
<p>Ich würde aber nochmal eine zweite Meinung einholen, ob das wirklich mit c++0x erlaubt ist.</p>
</blockquote>
<p>Ne, das is mieser Stil.</p>
<p>@seldon: Ja, habs auch gerade gelesen. Naja, nicht so tragisch, benutz eh kein C++0x (bietet eh nix wirklich weltbewegendes^^)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080351</guid><dc:creator><![CDATA[stringer2]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:53:51 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 20:59:59 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>stringer2 schrieb:</p>
<blockquote>
<p>Klappt bei mir (VS2010) nicht. enum class Color gibt einen Compiler error und enum Color { ... } Color c = Color::red gibt ein Warning:(</p>
</blockquote>
<p>Mach die doch einfach aus mit</p>
<pre><code class="language-cpp">#pragma warning(disable,4482)
</code></pre>
<p>Ich würde aber nochmal eine zweite Meinung einholen, ob das wirklich mit c++0x erlaubt ist.</p>
</blockquote>
<p><a href="http://www2.research.att.com/~bs/C++0xFAQ.html#enum" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#enum</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080353</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jun 2011 20:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 21:08:08 GMT]]></title><description><![CDATA[<p>stringer2 schrieb:</p>
<blockquote>
<p>Ne, das is mieser Stil.</p>
</blockquote>
<p>Den Compiler zu reparieren ist oberguter Stil!<br />
Nur dadurch kann man auf maximaler Warstufe fahren und wird nicht verrückt dabei.<br />
<a href="http://alfps.wordpress.com/2010/05/07/cppx-w4-no-warnings-disabling-msvc-sillywarnings/" rel="nofollow">http://alfps.wordpress.com/2010/05/07/cppx-w4-no-warnings-disabling-msvc-sillywarnings/</a><br />
Wobei ich nicht alle davon ausmachen würde, aber die meisten schon.</p>
<p>Wenn Color::red erlaubt ist für nicht strong typed enums, dann wird in der nächsten Compilerversion die Warnung auch weg sein. Keine Gefahr, sich die Zukunft zu verbauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080354</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 18 Jun 2011 21:08:08 GMT</pubDate></item><item><title><![CDATA[Reply to String nach Zahl klappt nicht on Sat, 18 Jun 2011 21:37:32 GMT]]></title><description><![CDATA[<p>Ich liebe auch, wenn ich STL-Container nutze und in meiner DLL exportiere und dann ständig eine Warnung kommt, dass der verwendende Code dann auch die Header nutzt und daher die LIBs braucht und blub... -.- Aber die Warnung ist ja berechtigt, wayned mich halt eben nur an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080365</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sat, 18 Jun 2011 21:37:32 GMT</pubDate></item></channel></rss>