<?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[Frage zu Template-Spezialisierung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab u.a. folgendes in einer statischen Bib in einer Header-Datei stehen</p>
<pre><code class="language-cpp">template&lt;class T&gt;
T degreeToRad(T value)
{
	return value * PI / 180.0;
}

template&lt;&gt;
float degreeToRad&lt;float&gt;(float value)
{
	return value * PI_f / 180.0f;
}
</code></pre>
<p>Nutze ich das Template in der Biliothek, dann gibt es eine Warnung, dass die Funktion mehrmals definiert ist, und die erste genutzt wird, alle anderen werden verworfen.</p>
<p>Wenn ich dieses Template in einem anderen Projekt benuztze, was die Lib linkt, dann meckert der Linker, dass degreeToRad mehrmals definiert ist. Lasse ich die Spezialisierung weg, dann funktioniert alles.<br />
Hab ich da irgendetwas falsch gemacht mit der Spezialisierung? Oder ist das ein Fehler beim Compiler/Linker?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197980/frage-zu-template-spezialisierung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 18:53:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197980.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Nov 2007 14:19:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Template-Spezialisierung on Fri, 16 Nov 2007 14:19:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab u.a. folgendes in einer statischen Bib in einer Header-Datei stehen</p>
<pre><code class="language-cpp">template&lt;class T&gt;
T degreeToRad(T value)
{
	return value * PI / 180.0;
}

template&lt;&gt;
float degreeToRad&lt;float&gt;(float value)
{
	return value * PI_f / 180.0f;
}
</code></pre>
<p>Nutze ich das Template in der Biliothek, dann gibt es eine Warnung, dass die Funktion mehrmals definiert ist, und die erste genutzt wird, alle anderen werden verworfen.</p>
<p>Wenn ich dieses Template in einem anderen Projekt benuztze, was die Lib linkt, dann meckert der Linker, dass degreeToRad mehrmals definiert ist. Lasse ich die Spezialisierung weg, dann funktioniert alles.<br />
Hab ich da irgendetwas falsch gemacht mit der Spezialisierung? Oder ist das ein Fehler beim Compiler/Linker?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1404430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1404430</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 16 Nov 2007 14:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Template-Spezialisierung on Fri, 16 Nov 2007 14:54:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das Template must du wie gewohnt komplett mit Implementierung weitergeben.<br />
Aber die Spezialisierung ist ja eine vollständige Funktion, und wird daher in die Library mit eingebunden. Damit must du aber auch nur den Prototyp der Spezialisierung exportieren, nicht die ganze Spezialiserung mit Implementation. So wie es bei anderen normalen Funktionen gemacht wird.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1404467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1404467</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 16 Nov 2007 14:54:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Template-Spezialisierung on Fri, 16 Nov 2007 15:42:27 GMT]]></title><description><![CDATA[<p>Eine explizite (auch vollständige) Spezialisierung eines Templates ist kein Template. Eine Spezialisierung eines Funktionstemplates ist eine Funktion, folglich ist die ODR einzuhalten, so wie sie für Funktionen gilt: genau eine Definition im gesamten Programm. Alternativ könnte man diese Funktion inline deklarieren, dann sollten obige Probleme ebenfalls nicht auftreten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1404512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1404512</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 16 Nov 2007 15:42:27 GMT</pubDate></item></channel></rss>