<?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[Template-Operatoren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade eine Template-Klasse zu schreiben, mit den dazugehörigen Operatoren. Leider mache ich irgendetwas falsch und ich weiß nicht was. Dabei habe ich mich schon an Beispielen aus dem Internet orientiert...</p>
<p>Das hier steht im Header:</p>
<pre><code class="language-cpp">template&lt;class T2&gt;
class MyTripleList
{
public:
	// ...

	template&lt;class T2&gt;
	friend bool operator== &lt;&gt;(const MyTripleList&lt;T2&gt;&amp;, const 

private:
        // ...
};
</code></pre>
<p>Und so sieht die Definition in der Quelldatei aus:</p>
<pre><code class="language-cpp">template&lt;class T2&gt; class MyTripleList;

template&lt;class T2&gt;
bool operator== &lt;&gt;(const MyTripleList&lt;T2&gt;&amp; m, const MyTripleList&lt;T2&gt;&amp; n)
{
	cout &lt;&lt; &quot;VERGLEICH!&quot; &lt;&lt; endl;
        // ...
	return true;
};
</code></pre>
<p>Aber die Methode wird nie aufgerufen!</p>
<p>Kann mir jemand sagen warum? (was die eckigen Klammern nach den Operatoren zu bedeuten haben weiß ich auch nicht, aber das macht man wohl so, oder?)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286959/template-operatoren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 15:31:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286959.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 May 2011 12:41:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template-Operatoren on Thu, 19 May 2011 12:41:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade eine Template-Klasse zu schreiben, mit den dazugehörigen Operatoren. Leider mache ich irgendetwas falsch und ich weiß nicht was. Dabei habe ich mich schon an Beispielen aus dem Internet orientiert...</p>
<p>Das hier steht im Header:</p>
<pre><code class="language-cpp">template&lt;class T2&gt;
class MyTripleList
{
public:
	// ...

	template&lt;class T2&gt;
	friend bool operator== &lt;&gt;(const MyTripleList&lt;T2&gt;&amp;, const 

private:
        // ...
};
</code></pre>
<p>Und so sieht die Definition in der Quelldatei aus:</p>
<pre><code class="language-cpp">template&lt;class T2&gt; class MyTripleList;

template&lt;class T2&gt;
bool operator== &lt;&gt;(const MyTripleList&lt;T2&gt;&amp; m, const MyTripleList&lt;T2&gt;&amp; n)
{
	cout &lt;&lt; &quot;VERGLEICH!&quot; &lt;&lt; endl;
        // ...
	return true;
};
</code></pre>
<p>Aber die Methode wird nie aufgerufen!</p>
<p>Kann mir jemand sagen warum? (was die eckigen Klammern nach den Operatoren zu bedeuten haben weiß ich auch nicht, aber das macht man wohl so, oder?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065807</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Thu, 19 May 2011 12:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Operatoren on Thu, 19 May 2011 13:47:56 GMT]]></title><description><![CDATA[<p>Hi,<br />
es scheint mir, dass du noch nicht allzu viel Erfahrung mit Templates hast und dich mehr auf See&amp;Copy&amp;Paste verlässt. Im Magazin gibts einen Artikel von GPC zum Thema Templates, lies ihn dir am besten durch: <a href="http://magazin.c-plusplus.net/artikel/Einf%FChrung%20in%20die%20Programmierung%20mit%20Templates" rel="nofollow">http://magazin.c-plusplus.net/artikel/Einf�hrung in die Programmierung mit Templates</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065853</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 19 May 2011 13:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Operatoren on Thu, 19 May 2011 16:42:32 GMT]]></title><description><![CDATA[<p>ichbineinnoob schrieb:</p>
<blockquote>
<p>Kann mir jemand sagen warum? (was die eckigen Klammern nach den Operatoren zu bedeuten haben weiß ich auch nicht, aber das macht man wohl so, oder?)</p>
</blockquote>
<p>Nein, das macht man nicht so - sowas verwendet man nur für Template-Spezialisierungen und dann steht noch etwas zwischen den Klammern.</p>
<p>PS: Die Forward-Deklaration der Klasse ist unnötig, besonders da du in deinem operator==() die komplette Definition benötigst. Und Templates in eigene Quelldateien zu packen bringt nicht die erwarteten Resultate.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065956</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 May 2011 16:42:32 GMT</pubDate></item></channel></rss>