<?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[Forward-Declaration von Klassentemplates]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne in meinen Header-Dateien das Klassentemplate boost::variant forward deklarieren, um den Standard-Namespace nicht unnötig zu verschmutzen. Das Problem mit boost::variant ist nun, dass es verschiedene Anzahl an Template-Parametern haben kann: Bei folgendem Toy Example</p>
<pre><code>namespace boost {
	template&lt;class, class&gt; class variant;
	template&lt;class, class, class&gt; class variant;
}

int main() {

}
</code></pre>
<p>bekomme ich die Fehlermeldung</p>
<pre><code>../src/test.cpp:3: error: redeclared with 3 template parameter(s)
../src/test.cpp:2: note: previous declaration ‘template&lt;class, class&gt; struct boost::variant’ used 2 template parameter(s)
</code></pre>
<p>Von daher die Frage: Kann man Klassentemplates mit variierender Anzahl an Parametern irgendwie forward deklarieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320163/forward-declaration-von-klassentemplates</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 12:07:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320163.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Sep 2013 21:44:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Forward-Declaration von Klassentemplates on Wed, 18 Sep 2013 21:44:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne in meinen Header-Dateien das Klassentemplate boost::variant forward deklarieren, um den Standard-Namespace nicht unnötig zu verschmutzen. Das Problem mit boost::variant ist nun, dass es verschiedene Anzahl an Template-Parametern haben kann: Bei folgendem Toy Example</p>
<pre><code>namespace boost {
	template&lt;class, class&gt; class variant;
	template&lt;class, class, class&gt; class variant;
}

int main() {

}
</code></pre>
<p>bekomme ich die Fehlermeldung</p>
<pre><code>../src/test.cpp:3: error: redeclared with 3 template parameter(s)
../src/test.cpp:2: note: previous declaration ‘template&lt;class, class&gt; struct boost::variant’ used 2 template parameter(s)
</code></pre>
<p>Von daher die Frage: Kann man Klassentemplates mit variierender Anzahl an Parametern irgendwie forward deklarieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2353566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2353566</guid><dc:creator><![CDATA[ingobulla]]></dc:creator><pubDate>Wed, 18 Sep 2013 21:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Forward-Declaration von Klassentemplates on Wed, 18 Sep 2013 21:48:44 GMT]]></title><description><![CDATA[<p>Das brauchst du gar nicht machen, denn boost gibt dir schon den Header** <code>&lt;boost/variant/variant_fwd.hpp&gt;</code> **vor. Binde einfach den ein, da ist u.a. <code>variant</code> deklariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2353567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2353567</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 18 Sep 2013 21:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to Forward-Declaration von Klassentemplates on Wed, 18 Sep 2013 21:49:10 GMT]]></title><description><![CDATA[<p>Im konkreten Fall</p>
<pre><code class="language-cpp">#include &lt;boost/variant/variant_fwd.hpp&gt;
</code></pre>
<p>Allgemein:</p>
<pre><code class="language-cpp">template&lt;typename...&gt; class foo;
</code></pre>
<p>bzw. ähnliche Deklarationen. Du musst das halt 1:1 aus der Bibliothek übernehmen und hoffen, dass sich nie was dran ändert. Wenn die Bibliothek einen Forward-Header hat, ist es besser, den zu benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2353568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2353568</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Wed, 18 Sep 2013 21:49:10 GMT</pubDate></item></channel></rss>