<?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[Templates in Funktionen]]></title><description><![CDATA[<p>Hi! Bisher habe ich Templates nur in meinen Klassen benutzt, nun ist es aber an der Zeit wo ich sie auch in Funktionen benutzen muss. Nun will das aber nicht so wie ich es will. Ich habe die Funktion in einer Header Datei deklariert und in einer Cpp Datei definiert. Nun bekomme ich aber beim debuggen ein linker error:</p>
<blockquote>
<p>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;class Vec3&lt;float&gt; __cdecl Vec3Cross&lt;float&gt;(class Vec3&lt;float&gt;,class Vec3&lt;float&gt;)&quot; (??<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>V</mi><mi>e</mi><mi>c</mi><mn>3</mn><mi>C</mi><mi>r</mi><mi>o</mi><mi>s</mi><mi>s</mi><mi mathvariant="normal">@</mi><mi>M</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>Y</mi><mi>A</mi><mo>?</mo><mi>A</mi><mi>V</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">Vec3Cross@M@@YA?AV?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit">e</span><span class="mord mathit">c</span><span class="mord mathrm">3</span><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">o</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.22222em;">Y</span><span class="mord mathit">A</span><span class="mclose">?</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mclose">?</span></span></span></span>Vec3@M@@V0@0@Z)&quot; in Funktion &quot;_WinMain@16&quot;.<br />
C:\Devia\Devia-Engine\Debug\Devia-Engine.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.</p>
</blockquote>
<p>Mein Code sieht so aus:</p>
<pre><code class="language-cpp">// Header Datei
template &lt;class T&gt;
Vec3&lt;T&gt; Vec3Cross(Vec3&lt;T&gt; v0, Vec3&lt;T&gt; v1);

// Cpp Datei
template &lt;class T&gt;
Vec3&lt;T&gt; Vec3Cross(Vec3&lt;T&gt; v0, Vec3&lt;T&gt; v1)
{
	Vec3&lt;T&gt; cross;

	cross.X = a.Y * b.Z - a.Z * b.Y;
	cross.Y = a.Z * b.X - a.X * b.Z;
	cross.Z = a.X * b.Y - a.Y * b.X;

	return cross;
}
</code></pre>
<p>Ich verstehe nicht warum das nicht funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229806/templates-in-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 16:19:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229806.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Dec 2008 23:34:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates in Funktionen on Tue, 16 Dec 2008 23:34:13 GMT]]></title><description><![CDATA[<p>Hi! Bisher habe ich Templates nur in meinen Klassen benutzt, nun ist es aber an der Zeit wo ich sie auch in Funktionen benutzen muss. Nun will das aber nicht so wie ich es will. Ich habe die Funktion in einer Header Datei deklariert und in einer Cpp Datei definiert. Nun bekomme ich aber beim debuggen ein linker error:</p>
<blockquote>
<p>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;class Vec3&lt;float&gt; __cdecl Vec3Cross&lt;float&gt;(class Vec3&lt;float&gt;,class Vec3&lt;float&gt;)&quot; (??<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>V</mi><mi>e</mi><mi>c</mi><mn>3</mn><mi>C</mi><mi>r</mi><mi>o</mi><mi>s</mi><mi>s</mi><mi mathvariant="normal">@</mi><mi>M</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>Y</mi><mi>A</mi><mo>?</mo><mi>A</mi><mi>V</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">Vec3Cross@M@@YA?AV?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit">e</span><span class="mord mathit">c</span><span class="mord mathrm">3</span><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">o</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.22222em;">Y</span><span class="mord mathit">A</span><span class="mclose">?</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mclose">?</span></span></span></span>Vec3@M@@V0@0@Z)&quot; in Funktion &quot;_WinMain@16&quot;.<br />
C:\Devia\Devia-Engine\Debug\Devia-Engine.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.</p>
</blockquote>
<p>Mein Code sieht so aus:</p>
<pre><code class="language-cpp">// Header Datei
template &lt;class T&gt;
Vec3&lt;T&gt; Vec3Cross(Vec3&lt;T&gt; v0, Vec3&lt;T&gt; v1);

// Cpp Datei
template &lt;class T&gt;
Vec3&lt;T&gt; Vec3Cross(Vec3&lt;T&gt; v0, Vec3&lt;T&gt; v1)
{
	Vec3&lt;T&gt; cross;

	cross.X = a.Y * b.Z - a.Z * b.Y;
	cross.Y = a.Z * b.X - a.X * b.Z;
	cross.Z = a.X * b.Y - a.Y * b.X;

	return cross;
}
</code></pre>
<p>Ich verstehe nicht warum das nicht funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631556</guid><dc:creator><![CDATA[Code-Walker]]></dc:creator><pubDate>Tue, 16 Dec 2008 23:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to Templates in Funktionen on Tue, 16 Dec 2008 23:40:40 GMT]]></title><description><![CDATA[<p>Auch bei Funktionen muss die Definition in der Header-Datei stehen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1631557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631557</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 16 Dec 2008 23:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to Templates in Funktionen on Tue, 16 Dec 2008 23:43:25 GMT]]></title><description><![CDATA[<p>template definitionen müssen immer im header stehen</p>
<p>dat.h</p>
<pre><code class="language-cpp">// deklaration

#include &quot;dat.cpp&quot;
</code></pre>
<p>meist nennt man die datei dann .impl</p>
<p>MfG helferlein<br />
:xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631559</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Tue, 16 Dec 2008 23:43:25 GMT</pubDate></item><item><title><![CDATA[Reply to Templates in Funktionen on Wed, 17 Dec 2008 00:00:09 GMT]]></title><description><![CDATA[<p>Das find ich mies! Giebt es keine möglichkeit die Funktionsdeklaration im Header und die definition in einer Cpp Datei zu haben?</p>
<p>Edist::</p>
<p>Achso, dann muss ein eifach in der Header Datei die Cpp Datei includen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631560</guid><dc:creator><![CDATA[Code-Walker]]></dc:creator><pubDate>Wed, 17 Dec 2008 00:00:09 GMT</pubDate></item><item><title><![CDATA[Reply to Templates in Funktionen on Wed, 17 Dec 2008 01:42:34 GMT]]></title><description><![CDATA[<p>Code-Walker schrieb:</p>
<blockquote>
<p>Das find ich mies! Giebt es keine möglichkeit die Funktionsdeklaration im Header und die definition in einer Cpp Datei zu haben?</p>
<p>Edist::</p>
<p>Achso, dann muss ein eifach in der Header Datei die Cpp Datei includen?</p>
</blockquote>
<p>Giebt.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Naja - im grunde genommen ist das richtig, allerdings solltest du sie dann nicht mehr dem Projekt hinzufügen - und da das keiner Wissen kann und sich dann wundert, wenn er es doch macht, nennt man in diesem Fall die *.cpp Datei *.impl..</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631571</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 17 Dec 2008 01:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to Templates in Funktionen on Wed, 17 Dec 2008 08:05:01 GMT]]></title><description><![CDATA[<p>Code-Walker schrieb:</p>
<blockquote>
<p>Achso, dann muss ein eifach in der Header Datei die Cpp Datei includen?</p>
</blockquote>
<p>Dann beachte aber ein paar Punkte:<br />
1. Kein using namespace (Die Regel für Header gilt auch für alle includierten Einheiten).<br />
2. (Wie schon genannt) möglichst nicht .cpp sondern z.B. .impl nennen</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631614</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 17 Dec 2008 08:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to Templates in Funktionen on Wed, 17 Dec 2008 14:43:28 GMT]]></title><description><![CDATA[<p>Du kannst auch mal in den FAQ rumstöbern oder im Forum suchen, die Thematik taucht relativ oft auf. Stichwort: <code>export</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631880</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 17 Dec 2008 14:43:28 GMT</pubDate></item></channel></rss>