<?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[Traits]]></title><description><![CDATA[<p>Hallo,</p>
<p>zur Zeit versuche ich mich in Traits einzulesen und bin momentan auf ein Problem gestoßen.<br />
Hier der Code</p>
<pre><code class="language-cpp">template&lt;int i&gt;
struct loop
{
	static void write(std::string text)
	{
		std::cout &lt;&lt; text;
		loop&lt;i - 1&gt;::write(text);
	}
};

template&lt;&gt;
struct loop&lt;0&gt;
{
	static void write(std::string text)
	{
		std::cout &lt;&lt; text;
	}
};

int main()
{
	loop&lt;5&gt;::write(&quot;Test&quot;);
	_getch();
	return 0;
}
</code></pre>
<p>Der Compiler zeigt mir an der völlig falschen Stelle den Fehler:</p>
<blockquote>
<p>Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
</blockquote>
<p>Er zeigt mir also den Fehler bei Zeile 16 an. cout hätte keine Operatorenüberladung für string. Wenn ich aber aus dem Trait eine völlig normale Struktur mache, ist es für ihn kein Problem mehr.</p>
<p>Über Hilfe wäre ich erfreut.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305318/traits</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 01:09:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305318.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Jun 2012 10:34:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 10:34:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>zur Zeit versuche ich mich in Traits einzulesen und bin momentan auf ein Problem gestoßen.<br />
Hier der Code</p>
<pre><code class="language-cpp">template&lt;int i&gt;
struct loop
{
	static void write(std::string text)
	{
		std::cout &lt;&lt; text;
		loop&lt;i - 1&gt;::write(text);
	}
};

template&lt;&gt;
struct loop&lt;0&gt;
{
	static void write(std::string text)
	{
		std::cout &lt;&lt; text;
	}
};

int main()
{
	loop&lt;5&gt;::write(&quot;Test&quot;);
	_getch();
	return 0;
}
</code></pre>
<p>Der Compiler zeigt mir an der völlig falschen Stelle den Fehler:</p>
<blockquote>
<p>Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
</blockquote>
<p>Er zeigt mir also den Fehler bei Zeile 16 an. cout hätte keine Operatorenüberladung für string. Wenn ich aber aus dem Trait eine völlig normale Struktur mache, ist es für ihn kein Problem mehr.</p>
<p>Über Hilfe wäre ich erfreut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227290</guid><dc:creator><![CDATA[Traits]]></dc:creator><pubDate>Tue, 26 Jun 2012 10:34:39 GMT</pubDate></item><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 10:38:20 GMT]]></title><description><![CDATA[<p>wahrscheinlich fehlt nur ein #include &lt;string&gt;<br />
und mit Traits hat das alles nichts zu tun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227291</guid><dc:creator><![CDATA[stiarT]]></dc:creator><pubDate>Tue, 26 Jun 2012 10:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 10:53:39 GMT]]></title><description><![CDATA[<p>Ich kann den Fehler nicht reproduzieren. Füge ich</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
</code></pre>
<p>hinzu und entferne ich <code>_getch()</code> , dann kann ich es kompilieren und das Programm verhält sich wie gewünscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227298</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 26 Jun 2012 10:53:39 GMT</pubDate></item><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 10:54:48 GMT]]></title><description><![CDATA[<p>Ja es lag tatsächlich an dem string, tut mir Leid.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227299</guid><dc:creator><![CDATA[Traits]]></dc:creator><pubDate>Tue, 26 Jun 2012 10:54:48 GMT</pubDate></item><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 10:59:51 GMT]]></title><description><![CDATA[<p>Eine Frage habe ich aber dennoch.<br />
Wenn ich den Code hiermit erweitere</p>
<pre><code class="language-cpp">template&lt;int i&gt;
struct loop
{
    static void write(std::string text)
    {
        //0 und negative Zahlen abfangen
        if(i &gt; 1)
        {
            std::cout &lt;&lt; text;
            loop&lt;i - 1&gt;::write(text);
        }
    }
};

template&lt;&gt;
struct loop&lt;0&gt;
{
    static void write(std::string text)
    {
        std::cout &lt;&lt; text;
    }
};

int main()
{
    //0 zum testen
    loop&lt;0&gt;::write(&quot;Test\n&quot;);
    return 0;
}
</code></pre>
<p>Scheint es ewig zu kompilieren, obwohl ich doch die 0 Abfange. Wenn ich statt 0 eine andere positive Zahl nehme, kompiliert und es funktioniert. Debuggen funktioniert auch nicht, da es ja zur Compilezeit ist. Weiß einer warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227301</guid><dc:creator><![CDATA[Traits]]></dc:creator><pubDate>Tue, 26 Jun 2012 10:59:51 GMT</pubDate></item><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 11:03:56 GMT]]></title><description><![CDATA[<p>Hat sich erledigt. War ein dummer Fehler von mir.<br />
Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227302</guid><dc:creator><![CDATA[Traits]]></dc:creator><pubDate>Tue, 26 Jun 2012 11:03:56 GMT</pubDate></item><item><title><![CDATA[Reply to Traits on Tue, 26 Jun 2012 11:04:24 GMT]]></title><description><![CDATA[<p>Bei mit (gcc 4.6.3) kompiliert es ohne Probleme. Ich sehe auch keine Fehler in deinem Programm.</p>
<p>gruß<br />
syntax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227303</guid><dc:creator><![CDATA[Syntax_error]]></dc:creator><pubDate>Tue, 26 Jun 2012 11:04:24 GMT</pubDate></item></channel></rss>