<?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[Von spezialisierter template-Klasse erben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche grade eine spezialisierte template-Klasse als Basisklasse für die &quot;allgemeine&quot; template-Klasse zu verwenden:</p>
<pre><code>template &lt;typename T1, typename T2&gt;
class A: public A&lt;int&gt;
{
      void bawk() {}
};

template &lt;&gt;
class A&lt;int&gt;
{
      virtual void bawk();
};
</code></pre>
<p>Allerdings bekomme ich da einige Kompilierfehler:</p>
<pre><code>error: wrong number of template arguments (1, should be 2)
</code></pre>
<p>Ich gehe mal davon aus dass man irgendeine ausgefallene forward-deklaration braucht, komm aber gerade nicht drauf wie genau die aussehen muss.</p>
<p>Danke schonmal im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319029/von-spezialisierter-template-klasse-erben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 06:31:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319029.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Aug 2013 16:40:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Von spezialisierter template-Klasse erben on Sun, 04 Aug 2013 16:40:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche grade eine spezialisierte template-Klasse als Basisklasse für die &quot;allgemeine&quot; template-Klasse zu verwenden:</p>
<pre><code>template &lt;typename T1, typename T2&gt;
class A: public A&lt;int&gt;
{
      void bawk() {}
};

template &lt;&gt;
class A&lt;int&gt;
{
      virtual void bawk();
};
</code></pre>
<p>Allerdings bekomme ich da einige Kompilierfehler:</p>
<pre><code>error: wrong number of template arguments (1, should be 2)
</code></pre>
<p>Ich gehe mal davon aus dass man irgendeine ausgefallene forward-deklaration braucht, komm aber gerade nicht drauf wie genau die aussehen muss.</p>
<p>Danke schonmal im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343381</guid><dc:creator><![CDATA[mortified_penguin]]></dc:creator><pubDate>Sun, 04 Aug 2013 16:40:01 GMT</pubDate></item><item><title><![CDATA[Reply to Von spezialisierter template-Klasse erben on Sun, 04 Aug 2013 16:49:13 GMT]]></title><description><![CDATA[<p>Das Klassentemplate A hat zwei Parameter, du kannst also nicht einfach A&lt;int&gt; schreiben, da fehlt ein Parameter. Was genau bezweckst du denn damit!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343383</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sun, 04 Aug 2013 16:49:13 GMT</pubDate></item><item><title><![CDATA[Reply to Von spezialisierter template-Klasse erben on Sun, 04 Aug 2013 17:00:22 GMT]]></title><description><![CDATA[<p>Mir ist da ein kleiner Fehler beim Beispiel erstellen unterlaufen…</p>
<pre><code>template &lt;typename T1, typename... Ts&gt; class A;

template &lt;&gt;
class A&lt;int&gt;
{
      virtual void bawk();
};

template &lt;typename T1, typename... Ts&gt;
class A: public A&lt;int&gt;
{
      void bawk() {}
};
</code></pre>
<p>So war es gemeint, funktioniert auch mit der forward-Deklaration.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343384</guid><dc:creator><![CDATA[mortified_penguin]]></dc:creator><pubDate>Sun, 04 Aug 2013 17:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Von spezialisierter template-Klasse erben on Sun, 04 Aug 2013 17:17:04 GMT]]></title><description><![CDATA[<p>Gut wenn es funktioniert, auch wenn mir noch immer nicht klar ist, wieso A von A&lt;int&gt; erben muss bzw. wieso das, wovon A erbt, ein template sein muss. Ich nehme einfach mal an, dass du irgendeinen Grund dafür haben wirst!?<br />
Ansonsten, wieso nicht einfach so:</p>
<pre><code class="language-cpp">class IA
{ 
    virtual void bawk() = 0;
}; 

template &lt;typename T1, typename... Ts&gt; 
class A: public IA
{ 
  void bawk() {} 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2343386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343386</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sun, 04 Aug 2013 17:17:04 GMT</pubDate></item><item><title><![CDATA[Reply to Von spezialisierter template-Klasse erben on Sun, 04 Aug 2013 17:37:08 GMT]]></title><description><![CDATA[<p>Konkret ging es um folgendes:<br />
Ich habe eine Templateklasse die eine csv-Datei einliest. Dabei werden als Templateparameter die Datentypen der jeweiligen Spalten angegeben. Wenn nur std::string angegeben wird, werden die Zeilen &quot;roh&quot; als String zurückgeliefert; im ersten Fall als Tupel mit den entsprechenden Datentypen.<br />
Die Templateklasse mit dem Tupel verhält sich im Prinzip genauso wie die die ein String zurückliefert, nur wird noch der rohe String in ein std::tuple &quot;umgewandelt&quot;.</p>
<p>Vorher hatte ich beide Klassen getrennt von einer Basisklasse erben lassen, was ich aber relativ hässlich fand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343389</guid><dc:creator><![CDATA[mortified_penguin]]></dc:creator><pubDate>Sun, 04 Aug 2013 17:37:08 GMT</pubDate></item><item><title><![CDATA[Reply to Von spezialisierter template-Klasse erben on Sun, 04 Aug 2013 20:10:06 GMT]]></title><description><![CDATA[<p>Schöner geschrieben, ohne vorwärts-Deklaration:</p>
<pre><code>template &lt;typename T1, typename... Ts&gt; 
class A: public A&lt;int&gt; 
{ 
      void bawk() {} 
};

template &lt;&gt; 
class A&lt;int&gt; 
{ 
      virtual void bawk(); 
};
</code></pre>
<blockquote>
<p>nur wird noch der rohe String in ein std::tuple &quot;umgewandelt&quot;.</p>
</blockquote>
<p>Das ist ineffizient. Zuerst die Zeile einlesen und dann formatiert alles extrahieren?<br />
Was spricht dagegen einen Parser zu bauen der direkt extrahiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343421</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Aug 2013 20:10:06 GMT</pubDate></item></channel></rss>