<?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]]></title><description><![CDATA[<p>Mich plagen seit einiger zeit einige Fragen zu Templates:</p>
<p>was ist der unterschied zwischen template &lt;typename T&gt; und template &lt;class T&gt;</p>
<p>und wie kann ich templates einschränken?</p>
<p>zB möchte ich nur eine Funktion die T = Basisklasse oder etwas davon abgeleitetes behandeln kann schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253165/templates</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 02:56:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253165.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Oct 2009 13:51:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates on Thu, 29 Oct 2009 13:51:54 GMT]]></title><description><![CDATA[<p>Mich plagen seit einiger zeit einige Fragen zu Templates:</p>
<p>was ist der unterschied zwischen template &lt;typename T&gt; und template &lt;class T&gt;</p>
<p>und wie kann ich templates einschränken?</p>
<p>zB möchte ich nur eine Funktion die T = Basisklasse oder etwas davon abgeleitetes behandeln kann schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800228</guid><dc:creator><![CDATA[shisha]]></dc:creator><pubDate>Thu, 29 Oct 2009 13:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to Templates on Thu, 29 Oct 2009 13:55:10 GMT]]></title><description><![CDATA[<p>shisha schrieb:</p>
<blockquote>
<p>was ist der unterschied zwischen template &lt;typename T&gt; und template &lt;class T&gt;</p>
</blockquote>
<p>keiner.</p>
<p>shisha schrieb:</p>
<blockquote>
<p>und wie kann ich templates einschränken?<br />
zB möchte ich nur eine Funktion die T = Basisklasse oder etwas davon abgeleitetes behandeln kann schreiben</p>
</blockquote>
<p>Compilerfehler machen lassen, wenns nicht so ist.<br />
Zum Beispiel einfach in den Destruktor deiner Templateklasse oder in deine Templatefunktion reinschreibseln: static_cast&lt;T*&gt; dummy=&amp;t;</p>
<p>Für abgedrehtere Spielchen SFINAE machen, aber manchmal ist weniger mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800231</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 29 Oct 2009 13:55:10 GMT</pubDate></item><item><title><![CDATA[Reply to Templates on Thu, 29 Oct 2009 14:35:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;boost/utility/enable_if.hpp&gt;
#include &lt;boost/type_traits/is_convertible.hpp&gt;

using boost::enable_if;
using boost::is_convertible;

class Base {};

template&lt;class K&gt;
  typename enable_if&lt; is_convertible&lt;K*,Base*&gt;,
void&gt;::type funktion(K* zeiger)
{
  // ...
}
</code></pre>
<p>Soooo schlimm/wild/unleserlich finde ich das gar nicht. Ich frage mich aber nach dem Sinn in diesem Fall. Warum sollte man ein Template so einschränken bzw warum muss die Funktion überhaupt ein Template sein?</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800260</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Thu, 29 Oct 2009 14:35:33 GMT</pubDate></item></channel></rss>