<?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 und Defines]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgendes Problem.<br />
Ich habe eine Template Klasse. Soweit ich weiß werden Templates ja<br />
zur Compiletime aufgelöst. Gibt es eine Möglichkeit mit Defines auf die Templateparameter zu reagieren.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">template&lt; bool B &gt;
class Foo
{
public:
    void foo();

}

template&lt; bool B &gt;
void Foo&lt; B &gt;::foo()
{
    // Mache dies

#if B
    // Mach noch dieses dazu
#endif

}
</code></pre>
<p>Natürlich könnte ich B auch einfach mit einem</p>
<pre><code class="language-cpp">if( B )
</code></pre>
<p>abfragen, aber die erste Variante würde bei B == False<br />
keinen Overhead erzeugen.</p>
<p>Ich hoffe es ist klar geworden was ich bewerkstelligen möchte.<br />
Dies fände ich eleganter als Defines.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218456/templates-und-defines</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 03:47:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218456.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jul 2008 08:24:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates und Defines on Mon, 21 Jul 2008 08:24:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgendes Problem.<br />
Ich habe eine Template Klasse. Soweit ich weiß werden Templates ja<br />
zur Compiletime aufgelöst. Gibt es eine Möglichkeit mit Defines auf die Templateparameter zu reagieren.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">template&lt; bool B &gt;
class Foo
{
public:
    void foo();

}

template&lt; bool B &gt;
void Foo&lt; B &gt;::foo()
{
    // Mache dies

#if B
    // Mach noch dieses dazu
#endif

}
</code></pre>
<p>Natürlich könnte ich B auch einfach mit einem</p>
<pre><code class="language-cpp">if( B )
</code></pre>
<p>abfragen, aber die erste Variante würde bei B == False<br />
keinen Overhead erzeugen.</p>
<p>Ich hoffe es ist klar geworden was ich bewerkstelligen möchte.<br />
Dies fände ich eleganter als Defines.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1550716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550716</guid><dc:creator><![CDATA[lalalala]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Defines on Mon, 21 Jul 2008 08:29:54 GMT]]></title><description><![CDATA[<p>lalalala schrieb:</p>
<blockquote>
<p>Gibt es eine Möglichkeit mit Defines auf die Templateparameter zu reagieren.</p>
</blockquote>
<p>Nein, da Präprozessoren *vor* den Templates aufgelöst werden.</p>
<p>Du kannst aber per Metaprogrammierung ein Compilezeit-'if' programmieren, indem Du ein Template spezialisierst. Schau Dir z.B. mal die Loki-Bibliothek oder die Metaprogramming-Bibliothek aus Boost an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1550719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550719</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Defines on Mon, 21 Jul 2008 08:31:27 GMT]]></title><description><![CDATA[<p>allerdings würde in diesem Fall</p>
<p>if(B) auch keinen Overhead produzieren, wenn B false ist. DAs kann der compiler rausoptimieren. Templates werden für jeden parameter neu geschrieben, d.h. der compiler erstellt bei benutzen des templates sowohl eine Funktion mit B==true und eine mit B==false, wenn du beide mindestens einmal benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1550722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550722</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:31:27 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Defines on Mon, 21 Jul 2008 08:58:56 GMT]]></title><description><![CDATA[<p>Vielen Dank. <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>Viel zu oft vergesse ich, dass der Compiler auch noch optimiert. <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/1550746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550746</guid><dc:creator><![CDATA[lalalala]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:58:56 GMT</pubDate></item></channel></rss>