<?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[Variadic Templates in eurem &amp;quot;Überblick über C++09&amp;quot; - Deklaration Fehler oder gewollt?]]></title><description><![CDATA[<p>Hier wird ja das Template-Struct count_args mit einem Template-Parameter deklariert, das einen &quot;Parameter-Pack&quot; darstellt (...Args):</p>
<pre><code class="language-cpp">//count_args zählt, mit wie vielen Template-Parametern es instanziiert wird
template &lt;typename ...Args&gt;
struct count_args;
</code></pre>
<p>Hier kommt dann auf einmal noch ein Template-Parameter (T) ins Spiel, hat das so seine Richtigkeit?</p>
<pre><code class="language-cpp">template &lt;typename T, typename ...Args&gt;
struct count_args&lt;T, Args...&gt;
{
   static int const value = 1 + count_args&lt;Args...&gt;::value;
};
</code></pre>
<p>Hier wird doch T auch wieder nicht verwendet:</p>
<pre><code class="language-cpp">static int const value = 1 + count_args&lt;Args...&gt;::value;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/271477/variadic-templates-in-eurem-quot-überblick-über-c-09-quot-deklaration-fehler-oder-gewollt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 13:41:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271477.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Jul 2010 06:50:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variadic Templates in eurem &amp;quot;Überblick über C++09&amp;quot; - Deklaration Fehler oder gewollt? on Thu, 29 Jul 2010 06:50:53 GMT]]></title><description><![CDATA[<p>Hier wird ja das Template-Struct count_args mit einem Template-Parameter deklariert, das einen &quot;Parameter-Pack&quot; darstellt (...Args):</p>
<pre><code class="language-cpp">//count_args zählt, mit wie vielen Template-Parametern es instanziiert wird
template &lt;typename ...Args&gt;
struct count_args;
</code></pre>
<p>Hier kommt dann auf einmal noch ein Template-Parameter (T) ins Spiel, hat das so seine Richtigkeit?</p>
<pre><code class="language-cpp">template &lt;typename T, typename ...Args&gt;
struct count_args&lt;T, Args...&gt;
{
   static int const value = 1 + count_args&lt;Args...&gt;::value;
};
</code></pre>
<p>Hier wird doch T auch wieder nicht verwendet:</p>
<pre><code class="language-cpp">static int const value = 1 + count_args&lt;Args...&gt;::value;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1933393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933393</guid><dc:creator><![CDATA[Hinterfrager]]></dc:creator><pubDate>Thu, 29 Jul 2010 06:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to Variadic Templates in eurem &amp;quot;Überblick über C++09&amp;quot; - Deklaration Fehler oder gewollt? on Thu, 29 Jul 2010 06:55:37 GMT]]></title><description><![CDATA[<p>Achso ich glaub ich habs verstanden: Damit es nicht in einer endlosen Rekursion endet, wird noch ein &quot;Dummy&quot;-Parameter angegeben, der den ersten entpackten Typen aufnimmt. Dann macht alles Sinn <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>
<p>Wäre schön, wenn das noch im Artikel erwähnt werden würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933395</guid><dc:creator><![CDATA[Selber Beantworter]]></dc:creator><pubDate>Thu, 29 Jul 2010 06:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Variadic Templates in eurem &amp;quot;Überblick über C++09&amp;quot; - Deklaration Fehler oder gewollt? on Thu, 29 Jul 2010 06:58:21 GMT]]></title><description><![CDATA[<p>Abgesehen davon, dass man dieses Klassentemplate nicht braucht -- denn es gibt ja den sizeof...-Operator -- ja, das hat so seine Richtigkeit.</p>
<pre><code class="language-cpp">template&lt;class...Args&gt;
struct count_args {
  static int value = 0;
};

template&lt;class T, class...Rest&gt;
struct count_args&lt;T, Rest...&gt; {
  static int value = 1 + count_args&lt;Rest...&gt;::value;
}
</code></pre>
<p>Für count_args&lt;&gt; greift das &quot;Mutter-Template&quot; mit value=0.</p>
<p>Alles andere sind Fälle mit mindestens einem Typparameter, also &lt;T,Mehr...&gt; wobei Mehr ein leeres Argumentpack sein kann. Da greift also die partielle Spezialisierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933398</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 29 Jul 2010 06:58:21 GMT</pubDate></item></channel></rss>