<?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[Problem bei Verschachtelten Template Klassen]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;typename S&gt;
struct A
{
    template&lt;typename T&gt; class B;
};

template&lt;typename S&gt;
template&lt;typename T&gt; class A&lt;S&gt;::B
{
    class C;
};

template&lt;typename S&gt;
template&lt;typename T&gt; class A&lt;S&gt;::B&lt;T&gt;::C
{
    C&amp; GibReferenz(void);
};

template&lt;typename T&gt;
template&lt;typename S&gt;
A&lt;S&gt;::B&lt;T&gt;::C&amp;  // &lt;= Rückgabetyp
A&lt;S&gt;::B&lt;T&gt;::C::GibReferenz(void)
{
    return *this;
}
</code></pre>
<p>Hallo ich bekomme bei obigem Coden folgen Fehler,wenn ich <em>GibReferenz</em> definieren möchte:<br />
<strong>error: expected constructor, destructor, or type conversion before '&lt;' token</strong></p>
<p>Wo liegt der Fehler?</p>
<p>Vielen Dank im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301877/problem-bei-verschachtelten-template-klassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 17:29:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301877.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Apr 2012 16:01:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei Verschachtelten Template Klassen on Thu, 05 Apr 2012 16:01:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;typename S&gt;
struct A
{
    template&lt;typename T&gt; class B;
};

template&lt;typename S&gt;
template&lt;typename T&gt; class A&lt;S&gt;::B
{
    class C;
};

template&lt;typename S&gt;
template&lt;typename T&gt; class A&lt;S&gt;::B&lt;T&gt;::C
{
    C&amp; GibReferenz(void);
};

template&lt;typename T&gt;
template&lt;typename S&gt;
A&lt;S&gt;::B&lt;T&gt;::C&amp;  // &lt;= Rückgabetyp
A&lt;S&gt;::B&lt;T&gt;::C::GibReferenz(void)
{
    return *this;
}
</code></pre>
<p>Hallo ich bekomme bei obigem Coden folgen Fehler,wenn ich <em>GibReferenz</em> definieren möchte:<br />
<strong>error: expected constructor, destructor, or type conversion before '&lt;' token</strong></p>
<p>Wo liegt der Fehler?</p>
<p>Vielen Dank im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199116</guid><dc:creator><![CDATA[Jemand___]]></dc:creator><pubDate>Thu, 05 Apr 2012 16:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Verschachtelten Template Klassen on Thu, 05 Apr 2012 16:07:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;typename S&gt;
template&lt;typename T&gt;
typename A&lt;S&gt;::template B&lt;T&gt;::C&amp;  // &lt;= Rückgabetyp
A&lt;S&gt;::template B&lt;T&gt;::C::GibReferenz(void)
{
    return *this;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2199118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199118</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 05 Apr 2012 16:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Verschachtelten Template Klassen on Thu, 05 Apr 2012 16:14:25 GMT]]></title><description><![CDATA[<p>Es sind Klassentemplates.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199119</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 05 Apr 2012 16:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Verschachtelten Template Klassen on Thu, 05 Apr 2012 16:25:53 GMT]]></title><description><![CDATA[<p>Danke!<br />
Darf ich noch um eine Erklärung bitten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199122</guid><dc:creator><![CDATA[Jemand___]]></dc:creator><pubDate>Thu, 05 Apr 2012 16:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Verschachtelten Template Klassen on Thu, 05 Apr 2012 16:27:46 GMT]]></title><description><![CDATA[<p>Sorry hab den Post übersehen. Alles klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199123</guid><dc:creator><![CDATA[__Jemand]]></dc:creator><pubDate>Thu, 05 Apr 2012 16:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Verschachtelten Template Klassen on Thu, 05 Apr 2012 16:39:25 GMT]]></title><description><![CDATA[<p>Jemand___ schrieb:</p>
<blockquote>
<p>Danke!<br />
Darf ich noch um eine Erklärung bitten?</p>
</blockquote>
<p>Da A&lt;S&gt;::B&lt;T&gt;::C von den Templateparametern T und S abhangt, steht zu der Zeit wenn der Compiler das erste Mal über das Template geht nicht fest, was A&lt;S&gt;::B&lt;T&gt;::C überhaupt ist. Das könnte ja nicht nur ein Typ sein, sondern zum Beispiel auch ein statischer Member von A&lt;S&gt;::B&lt;T&gt; oder selber ein Template. Damit der Compiler die Richtigkeit des Codes prüfen kann und damit hinterher geprüft werden kann, ob das was A&lt;S&gt;::B&lt;T&gt;::C ist (wenn S und T erst einmal feststehen) auch passt, muss dem Compiler mitgeteilt werden, dass A&lt;S&gt;::B&lt;T&gt;::C ein Typenname sein soll. Das macht man mit dem typename Schlüsselwort.</p>
<p>Siehe auch hier für die gleiche Erklärung in lang:<br />
<a href="http://pages.cs.wisc.edu/~driscoll/typename.html" rel="nofollow">http://pages.cs.wisc.edu/~driscoll/typename.html</a></p>
<p>Seltener braucht man auch noch ein explizites &quot;template&quot; im gleichen Sinne, um eben ersichtlich zu machen, dass etwas, was von einem Templateparameter abhängt selber wieder ein Template ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199126</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 05 Apr 2012 16:39:25 GMT</pubDate></item></channel></rss>