<?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[Templatespezialisierung]]></title><description><![CDATA[<pre><code>template&lt;int i&gt;
struct Foo{
	template&lt;int j&gt;
	operator Foo&lt;j&gt; ();
};

//template&lt;&gt;
Foo&lt;0&gt;::operator Foo&lt;2&gt;(){
	return Foo&lt;2&gt;();
}
</code></pre>
<p>Warum kompiliert das nicht und was muss man tun, damit es kompiliert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319418/templatespezialisierung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 20:13:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319418.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Aug 2013 22:27:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templatespezialisierung on Sat, 17 Aug 2013 22:27:54 GMT]]></title><description><![CDATA[<pre><code>template&lt;int i&gt;
struct Foo{
	template&lt;int j&gt;
	operator Foo&lt;j&gt; ();
};

//template&lt;&gt;
Foo&lt;0&gt;::operator Foo&lt;2&gt;(){
	return Foo&lt;2&gt;();
}
</code></pre>
<p>Warum kompiliert das nicht und was muss man tun, damit es kompiliert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2346731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2346731</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 17 Aug 2013 22:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to Templatespezialisierung on Sat, 17 Aug 2013 22:31:05 GMT]]></title><description><![CDATA[<p>Wenn eins nicht hilft, dann probiers mal mit zwei.</p>
<pre><code class="language-cpp">template&lt;int i&gt;
struct Foo{
    template&lt;int j&gt;
    operator Foo&lt;j&gt; ();
};

template&lt;&gt; // eins
template&lt;&gt; // zwei
Foo&lt;0&gt;::operator Foo&lt;2&gt;(){
    return Foo&lt;2&gt;();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2346732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2346732</guid><dc:creator><![CDATA[gewalto]]></dc:creator><pubDate>Sat, 17 Aug 2013 22:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to Templatespezialisierung on Sat, 17 Aug 2013 22:42:05 GMT]]></title><description><![CDATA[<p>Cool danke funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2346733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2346733</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 17 Aug 2013 22:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to Templatespezialisierung on Sat, 17 Aug 2013 23:01:40 GMT]]></title><description><![CDATA[<p>Vielleicht noch zur Erklärung, weshalb das so geht:</p>
<pre><code class="language-cpp">template&lt;&gt; // Es handelt sich um eine Spezialisierung von Foo&lt;&gt;
template&lt;&gt; // Es handelt sich um eine Spezialisierung von operator Foo&lt;&gt;
Foo&lt;0&gt;::operator Foo&lt;2&gt;(){
    return Foo&lt;2&gt;();
}
</code></pre>
<p>Man würde auch schreiben</p>
<pre><code class="language-cpp">template &lt;typename T&gt; // allgemein vector&lt;T&gt;
void vector&lt;T&gt;::push_back(T const&amp; x)
{ ... }

template &lt;typename T&gt; // spezialisiert vector&lt;T&gt;
template &lt;typename... A&gt; // allgemein für emplace_back(A...)
// ^-- da sind auch zweimal template
void vector&lt;T&gt;::emplace_back(A&amp;&amp;...a)
{ ... }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2346737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2346737</guid><dc:creator><![CDATA[gewalto]]></dc:creator><pubDate>Sat, 17 Aug 2013 23:01:40 GMT</pubDate></item></channel></rss>