<?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-Typ eingrenzen]]></title><description><![CDATA[<p>Hi Leute</p>
<p>ich hab mal ne Frage zu Templates.<br />
Kann man den Typ des Templates ( &quot;T&quot; ) auch irgendwie eingrenzen auf Derivate einer bestimmmten Basisklasse?<br />
Ich vermute nicht... Oder doch?</p>
<p><strong>ja</strong> oder <strong>nein</strong> reicht mir völlig als Antwort <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>
<p>(wenn &quot;ja&quot;, dann interessiert mich auch das &quot;wie&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287586/template-typ-eingrenzen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 07:50:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287586.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 31 May 2011 13:13:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template-Typ eingrenzen on Tue, 31 May 2011 13:14:35 GMT]]></title><description><![CDATA[<p>Hi Leute</p>
<p>ich hab mal ne Frage zu Templates.<br />
Kann man den Typ des Templates ( &quot;T&quot; ) auch irgendwie eingrenzen auf Derivate einer bestimmmten Basisklasse?<br />
Ich vermute nicht... Oder doch?</p>
<p><strong>ja</strong> oder <strong>nein</strong> reicht mir völlig als Antwort <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>
<p>(wenn &quot;ja&quot;, dann interessiert mich auch das &quot;wie&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071450</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 31 May 2011 13:14:35 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Tue, 31 May 2011 13:17:53 GMT]]></title><description><![CDATA[<p>ja.</p>
<p>google mal nach boost::enable_if und boost::is_base_of</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071453</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 31 May 2011 13:17:53 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Tue, 31 May 2011 13:34:52 GMT]]></title><description><![CDATA[<p>ok, danke. Das guck ich mir mal an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071459</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 31 May 2011 13:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Tue, 31 May 2011 16:45:15 GMT]]></title><description><![CDATA[<p>Oft reicht es auch Dinge die man mit T machen will im Template einfach zu machen.</p>
<p>Mach im Template-Code z.B. ne implizite Konvertierung von T* zu BASE*, und der Compiler wird an der Stelle entsprechend nen Fehler melden, wenn der Parameter nicht passt (also T* nicht implizit zu BASE* konvertierbar ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071602</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 31 May 2011 16:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Wed, 01 Jun 2011 06:03:58 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Oft reicht es auch Dinge die man mit T machen will im Template einfach zu machen.</p>
<p>Mach im Template-Code z.B. ne implizite Konvertierung von T* zu BASE*, und der Compiler wird an der Stelle entsprechend nen Fehler melden, wenn der Parameter nicht passt (also T* nicht implizit zu BASE* konvertierbar ist).</p>
</blockquote>
<p>Ja, das war auch meine erste Idee... Ich wollte halt mal schauen ob es noch was &quot;handfesteres&quot; gibt <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/2071818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071818</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Wed, 01 Jun 2011 06:03:58 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Wed, 01 Jun 2011 06:44:26 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Oft reicht es auch Dinge die man mit T machen will im Template einfach zu machen.</p>
</blockquote>
<p>Depends. Wenn du den Code nur selbt und nur jetzt grade verwendest, okay. Wenn der Code wiederverwendet werden soll, wärs schon klasse, da ne aussagekräftige Fehlermeldung zu kriegen an Stelle von 200 Zeile Templatefehlermeldungen á la &quot;instantiated from blah, instantiated from bläh...&quot;</p>
<p>siehe auch<br />
<a href="http://cpp-next.com/archive/2010/09/expressive-c-why-template-errors-suck-and-what-you-can-do-about-it/" rel="nofollow">http://cpp-next.com/archive/2010/09/expressive-c-why-template-errors-suck-and-what-you-can-do-about-it/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071834</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 01 Jun 2011 06:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Wed, 01 Jun 2011 07:48:28 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p><a href="http://cpp-next.com" rel="nofollow">http://cpp-next.com</a></p>
</blockquote>
<p>Danke:) Ging irgendwie an mir vorbei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071847</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Jun 2011 07:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typ eingrenzen on Wed, 01 Jun 2011 18:26:46 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Oft reicht es auch Dinge die man mit T machen will im Template einfach zu machen.</p>
</blockquote>
<p>Depends. Wenn du den Code nur selbt und nur jetzt grade verwendest, okay. Wenn der Code wiederverwendet werden soll, wärs schon klasse, da ne aussagekräftige Fehlermeldung zu kriegen an Stelle von 200 Zeile Templatefehlermeldungen á la &quot;instantiated from blah, instantiated from bläh...&quot;</p>
</blockquote>
<p>OK.<br />
Dann aber lieber <code>static_assert(boost::is_base_of...)</code> (bzw. <code>BOOST_STATIC_ASSERT</code> bzw. <code>boost::is_convertible&lt;T*, U*&gt;</code> ).</p>
<p>Mit <code>boost::enable_if</code> bekommst du auch bloss ne Fehlermeldung, dass keine passende Template-Spezialisierung gefunden wurde oder dergleichen - aber nicht warum. Auch nicht sehr hilfreich.</p>
<p><code>boost::is_base_of</code> findet leider auch private Basisklassen, in dem Fall schnalzt es dann erst wieder mit der 200 Zeilen Fehlermeldung.<br />
Und <code>boost::is_convertible&lt;T*, U*&gt;</code> macht Compiler-Fehler, wenn die Konvertierung ambiguous wäre.</p>
<p>Alles Kacke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072160</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 01 Jun 2011 18:26:46 GMT</pubDate></item></channel></rss>