<?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[Friend Templates]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lese gerade im Josuttis über Friends bei Templates und bin dabei im Abschnitt 8.4.2 über folgenden Code gestoßen, den ich nicht verstehe:</p>
<pre><code class="language-cpp">class Manager {
    ...
    template&lt;typename T&gt;
        friend int ticket() {
            return ++Manager::counter;
        }
    static int counter;
};
</code></pre>
<p>Mir ist nun unklar, für was diese Konstruktion gut sein soll. Man erhält hier doch eine Template-Funktion ticket(), die, egal mit welchem Template-Argument sie instanziert wird, immer dasselbe macht? Dann könnte man doch ticket() auch einfach als ordinäre (nicht-Template) Funktion definieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282694/friend-templates</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 22:44:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282694.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Feb 2011 16:31:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Friend Templates on Thu, 24 Feb 2011 16:31:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lese gerade im Josuttis über Friends bei Templates und bin dabei im Abschnitt 8.4.2 über folgenden Code gestoßen, den ich nicht verstehe:</p>
<pre><code class="language-cpp">class Manager {
    ...
    template&lt;typename T&gt;
        friend int ticket() {
            return ++Manager::counter;
        }
    static int counter;
};
</code></pre>
<p>Mir ist nun unklar, für was diese Konstruktion gut sein soll. Man erhält hier doch eine Template-Funktion ticket(), die, egal mit welchem Template-Argument sie instanziert wird, immer dasselbe macht? Dann könnte man doch ticket() auch einfach als ordinäre (nicht-Template) Funktion definieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025986</guid><dc:creator><![CDATA[ingobulla]]></dc:creator><pubDate>Thu, 24 Feb 2011 16:31:12 GMT</pubDate></item><item><title><![CDATA[Reply to Friend Templates on Fri, 25 Feb 2011 06:51:34 GMT]]></title><description><![CDATA[<p>In soweit wie die Funktion nur mit einem Typen aufgerufen wird (int), macht es keinen Unterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2026204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2026204</guid><dc:creator><![CDATA[AP0LL0]]></dc:creator><pubDate>Fri, 25 Feb 2011 06:51:34 GMT</pubDate></item><item><title><![CDATA[Reply to Friend Templates on Fri, 25 Feb 2011 21:24:21 GMT]]></title><description><![CDATA[<p>Es geht wohl eher darum, in einem Minimalbeispiel zu zeigen, wie ein friend template aussieht, auch wenn der friend in diesem speziellen Fall kein template sein müsste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2026632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2026632</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Fri, 25 Feb 2011 21:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to Friend Templates on Fri, 25 Feb 2011 21:27:46 GMT]]></title><description><![CDATA[<p>Also im Prinzip ein Fehler im Buch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2026633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2026633</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 25 Feb 2011 21:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Friend Templates on Sun, 27 Feb 2011 08:46:55 GMT]]></title><description><![CDATA[<p>Da mag wohl einer das Buch nicht, was? <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="😉"
    /><br />
Minimalbeispiele, die nur die Syntax von irgendwas zeigen sollen, sind inhaltlich doch oft ziemlich sinnlos. Als Fehler würd ich ich das nicht bezeichnen, aber ok, &gt;20000 vs. &lt;100 Posts. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2027093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2027093</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sun, 27 Feb 2011 08:46:55 GMT</pubDate></item><item><title><![CDATA[Reply to Friend Templates on Sun, 27 Feb 2011 09:18:54 GMT]]></title><description><![CDATA[<p>Dobi schrieb:</p>
<blockquote>
<p>Da mag wohl einer das Buch nicht, was? <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="😉"
    /><br />
Minimalbeispiele, die nur die Syntax von irgendwas zeigen sollen, sind inhaltlich doch oft ziemlich sinnlos. Als Fehler würd ich ich das nicht bezeichnen, aber ok, &gt;20000 vs. &lt;100 Posts. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Und was zeigt dieses Beispiel? Dass das Anwenden einer Template-Funktion nicht zwangsläufig mehrere Templateklassen erstellt wie bei einer Klassentemplate? Falls ja, wurde das nicht gerade gut beschrieben, da OP davon kein Wort erwähnt hat. Ansonsten verwirrt dieses Beispiel mehr als dass es nutzt, lässt aber durchscheinen durch die Templatefunktion irgendwas Tolleres zu machen als es eine normale Funktion täte.</p>
<p>Wenn der Autor nicht die Intention hat zu verwirren, wollte er vielleicht etwas anderes ausdrücken. Geht man davon aus, ist dieses Beispiel fehlerhaft, da es nichts Weltbewegendes tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2027106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2027106</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 27 Feb 2011 09:18:54 GMT</pubDate></item></channel></rss>