<?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 -&amp;gt; inline?]]></title><description><![CDATA[<p>Jo folgende Frage: wenn ich meine Klassenmethoden bei einem Template außerhalb der Klasse, aber halt wie gewohnt in der Headerdatei definiere, werden die dann noch vom Compiler automatisch als inline angesehen? Was sagt da der Standard?</p>
<p>MfG Pellaeon</p>
<pre><code class="language-cpp">template &lt;class T&gt;
	struct CAEMatrix44
	{
		//erstellt Matrix uninitialisiert
		CAEMatrix44() {}
		//erstellte Matrix wird mit value gefüllt
		CAEMatrix44(const T&amp; value);

		//setzt die Einheitssmatrix
		void identity();
		...
    }

    //
	template &lt;class T&gt;
	void CAEMatrix44&lt;T&gt;::identity()  // &lt;- inline oder nicht?
	{
		memset(m_values,0,sizeof(m_values));
		m_11 = m_22 = m_33 = m_44 = 1;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/154664/template-gt-inline</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 00:33:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154664.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Jul 2006 11:34:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 11:34:56 GMT]]></title><description><![CDATA[<p>Jo folgende Frage: wenn ich meine Klassenmethoden bei einem Template außerhalb der Klasse, aber halt wie gewohnt in der Headerdatei definiere, werden die dann noch vom Compiler automatisch als inline angesehen? Was sagt da der Standard?</p>
<p>MfG Pellaeon</p>
<pre><code class="language-cpp">template &lt;class T&gt;
	struct CAEMatrix44
	{
		//erstellt Matrix uninitialisiert
		CAEMatrix44() {}
		//erstellte Matrix wird mit value gefüllt
		CAEMatrix44(const T&amp; value);

		//setzt die Einheitssmatrix
		void identity();
		...
    }

    //
	template &lt;class T&gt;
	void CAEMatrix44&lt;T&gt;::identity()  // &lt;- inline oder nicht?
	{
		memset(m_values,0,sizeof(m_values));
		m_11 = m_22 = m_33 = m_44 = 1;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1106571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106571</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Sat, 29 Jul 2006 11:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 12:06:36 GMT]]></title><description><![CDATA[<p>Wenn du in einem Klassentemplate eine Funktion inline machen möchtest, musst du entweder die Funktionsdefinition in die Klassendefinition schreiben oder ein inline vor die Funktionsdeklaration setzen. Also ist identify() in deinem Beispiel keine inline-Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106592</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sat, 29 Jul 2006 12:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 13:13:44 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Wenn du in einem Klassentemplate eine Funktion inline machen möchtest, musst du entweder die Funktionsdefinition in die Klassendefinition schreiben oder ein inline vor die Funktionsdeklaration setzen. Also ist identify() in deinem Beispiel keine inline-Funktion.</p>
</blockquote>
<p>tatsächlich ist identity hier überhaupt keine funktion, sondern ein template. eine inline-spezifikation, um die verletzung der ODR zu verhindern, ist folglich unnötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106657</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 29 Jul 2006 13:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 13:28:05 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Wenn du in einem Klassentemplate eine Funktion inline machen möchtest, musst du entweder die Funktionsdefinition in die Klassendefinition schreiben oder ein inline vor die Funktionsdeklaration setzen. Also ist identify() in deinem Beispiel keine inline-Funktion.</p>
</blockquote>
<p>tatsächlich ist identity hier überhaupt keine funktion, sondern ein template.</p>
</blockquote>
<p>Eine Funktion eines Klassentemplates <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="😉"
    /></p>
<blockquote>
<p>eine inline-spezifikation, um die verletzung der ODR zu verhindern, ist folglich unnötig.</p>
</blockquote>
<p>Inline-Spezifikationen sind auch nicht nur dafür da, um die ODR einzuhalten. Bei einer so kurzen Funktion wie identity ist es sinnvoll, sie inline zu machen, um dem Compiler zu empfehlen, Funktionsaufrufe durch den Funktionskörper zu ersetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106674</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sat, 29 Jul 2006 13:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 15:49:48 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>eine inline-spezifikation, um die verletzung der ODR zu verhindern, ist folglich unnötig.</p>
</blockquote>
<p>Stimmt zwar, hat aber nichts mit dem Thema zu tun. <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/1106757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106757</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 29 Jul 2006 15:49:48 GMT</pubDate></item><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 19:05:44 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>tatsächlich ist identity hier überhaupt keine funktion, sondern ein template. eine inline-spezifikation, um die verletzung der ODR zu verhindern, ist folglich unnötig.</p>
</blockquote>
<p>Was meinst du damit? ODR?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106861</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Sat, 29 Jul 2006 19:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to Template -&amp;gt; inline? on Sat, 29 Jul 2006 19:20:05 GMT]]></title><description><![CDATA[<p><a href="http://en.wikipedia.org/wiki/One_Definition_Rule" rel="nofollow">One Definition Rule</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106864</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sat, 29 Jul 2006 19:20:05 GMT</pubDate></item></channel></rss>