<?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[dynamische Template-Zahl?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich brauche eine Klasse, die mit zwischen 1 und 5 Templates initialisiert wird. Geht das irgendwie? Und mit irgendwie meine ich, ob man das mit abstrusen (boost-) Konstrukten realisieren kann oder sonst wie.</p>
<p>THX</p>
<pre><code class="language-cpp">template&lt;typename t1, typename t2, ...&gt;
class C
{
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/249980/dynamische-template-zahl</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 05:09:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249980.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Sep 2009 20:41:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 20:41:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich brauche eine Klasse, die mit zwischen 1 und 5 Templates initialisiert wird. Geht das irgendwie? Und mit irgendwie meine ich, ob man das mit abstrusen (boost-) Konstrukten realisieren kann oder sonst wie.</p>
<p>THX</p>
<pre><code class="language-cpp">template&lt;typename t1, typename t2, ...&gt;
class C
{
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1778428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778428</guid><dc:creator><![CDATA[template_tim]]></dc:creator><pubDate>Mon, 14 Sep 2009 20:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 20:43:44 GMT]]></title><description><![CDATA[<p>wozu brauchst du das denn?</p>
<p>würde evtl auch schon ein einfaches</p>
<pre><code class="language-cpp">template&lt;
  class T1,
  class T2 = T1,
  class T3 = T2,
  class T4 = T3,
  class T5 = T4
&gt;
struct asd
{
/*...*/
};
</code></pre>
<p>reichen?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778430</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 14 Sep 2009 20:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 20:47:29 GMT]]></title><description><![CDATA[<p>Die Klasse muss Objekte der angegebenen Template-Typen erstellen und über einen Kommunikationsmechanismus versenden.<br />
Im Prinzip geht das mit deiner Lösung, wobei ich dann noch überprüfen müsste, ob die Typen gleich sind (per typeid), um herauszufinden, wieviele Typen angegeben sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778434</guid><dc:creator><![CDATA[template_tim]]></dc:creator><pubDate>Mon, 14 Sep 2009 20:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 20:51:13 GMT]]></title><description><![CDATA[<p>Nimm lieber void als Default, oder einen eigens dafür gemachten Dummy-Typ.</p>
<pre><code class="language-cpp">template&lt;
  class T1,
  class T2 = void,
  class T3 = void,
  class T4 = void,
  class T5 = void&gt;
struct asd
{
/*...*/
};

// bzw.

struct unused_template_argument {};

template&lt;
  class T1,
  class T2 = unused_template_argument,
  class T3 = unused_template_argument,
  class T4 = unused_template_argument,
  class T5 = unused_template_argument&gt;
struct asd
{
/*...*/
};
</code></pre>
<p>Oder übergib deiner Klasse gleich ein boost::tuple&lt;&gt;:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
struct asd
{
/*...*/
};

typedef asd&lt;boost::tuple&lt;int, char, float&gt; &gt; foo;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1778435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778435</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 14 Sep 2009 20:51:13 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 20:52:10 GMT]]></title><description><![CDATA[<p>voelleicht kriegst du was mit variadic templates hin.<br />
<a href="http://en.wikipedia.org/wiki/Variadic_Templates" rel="nofollow">http://en.wikipedia.org/wiki/Variadic_Templates</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778436</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 14 Sep 2009 20:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 20:58:49 GMT]]></title><description><![CDATA[<p>Danke für die nützlichen Tipps. Ich werde mich mal versuchen.<br />
---------<br />
btw.</p>
<p>volkard schrieb:</p>
<blockquote>
<p>voelleicht kriegst du was mit variadic templates hin.<br />
<a href="http://en.wikipedia.org/wiki/Variadic_Templates" rel="nofollow">http://en.wikipedia.org/wiki/Variadic_Templates</a></p>
</blockquote>
<p>Ist das in aktuellem C++ machbar oder erst mit C++0x?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778439</guid><dc:creator><![CDATA[template_tim]]></dc:creator><pubDate>Mon, 14 Sep 2009 20:58:49 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 21:06:20 GMT]]></title><description><![CDATA[<p>Erst mit C++0x.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778441</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 14 Sep 2009 21:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Template-Zahl? on Mon, 14 Sep 2009 21:28:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;cstddef&gt;
#include &lt;boost/mpl/remove.hpp&gt;
#include &lt;boost/mpl/size.hpp&gt;
#include &lt;boost/mpl/vector.hpp&gt;

template&lt;
    typename T0,        typename T1 = void, typename T2 = void, typename T3 = void, typename T4 = void,
    typename T5 = void, typename T6 = void, typename T7 = void, typename T8 = void, typename T9 = void&gt;
struct foo
{
	typedef typename boost::mpl::remove&lt;boost::mpl::vector&lt;T0,T1,T2,T3,T4,T5,T6,T7,T8,T9&gt;,void&gt;::type args;
	static const std::size_t num_args = boost::mpl::size&lt;args&gt;::type::value;
};
</code></pre>
<p>Wenn noch ggf. doppelt genannte Typen u.ä eliminiert werden müssen, ist das auch möglich, oder auch nach der Größe sortieren oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778452</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 14 Sep 2009 21:28:35 GMT</pubDate></item></channel></rss>