<?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[Templates mit Nested Classes - Compiler Error]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Klassen-Beziehung:</p>
<p>header:</p>
<pre><code>template &lt;class S&gt;
class Class6 
{

  class Subclass
  {

    // copy assignment operator
    Subclass&amp; operator= (const Subclass&amp; rhs);
  }
}
</code></pre>
<p>body:</p>
<pre><code>template&lt;class S&gt;
Class6&lt;S&gt;::Subclass&amp;
Class6&lt;S&gt;::Subclass::operator= (const Subclass&amp; rhs)
{
  return *this;
}
</code></pre>
<p>ergibt folgenden Fehler:</p>
<pre><code>../Class6.cpp:104: error: expected constructor, destructor, or type conversion before '&amp;' token
../Class6.cpp:104: error: expected `;' before '&amp;' token
</code></pre>
<p>Ich benutze gcc 3.4.4 und habe das gleiche auch schon mit einem ms-compiler getestet. Scheinbar hat der Compiler ein Problem mit der Typaulösung des Class6&lt;S&gt;::Subclass&amp;<br />
Auch ein</p>
<pre><code>typedef Class6&lt;S&gt;::Subclass&amp;
</code></pre>
<p>innerhalb der Subclass Deklaration will nicht gelingen.</p>
<p>Hat da jemand eine Ahnung woran es hapert oder welchen workaound man benutzen kann?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130347/templates-mit-nested-classes-compiler-error</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 14:02:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130347.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Dec 2005 10:03:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:03:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Klassen-Beziehung:</p>
<p>header:</p>
<pre><code>template &lt;class S&gt;
class Class6 
{

  class Subclass
  {

    // copy assignment operator
    Subclass&amp; operator= (const Subclass&amp; rhs);
  }
}
</code></pre>
<p>body:</p>
<pre><code>template&lt;class S&gt;
Class6&lt;S&gt;::Subclass&amp;
Class6&lt;S&gt;::Subclass::operator= (const Subclass&amp; rhs)
{
  return *this;
}
</code></pre>
<p>ergibt folgenden Fehler:</p>
<pre><code>../Class6.cpp:104: error: expected constructor, destructor, or type conversion before '&amp;' token
../Class6.cpp:104: error: expected `;' before '&amp;' token
</code></pre>
<p>Ich benutze gcc 3.4.4 und habe das gleiche auch schon mit einem ms-compiler getestet. Scheinbar hat der Compiler ein Problem mit der Typaulösung des Class6&lt;S&gt;::Subclass&amp;<br />
Auch ein</p>
<pre><code>typedef Class6&lt;S&gt;::Subclass&amp;
</code></pre>
<p>innerhalb der Subclass Deklaration will nicht gelingen.</p>
<p>Hat da jemand eine Ahnung woran es hapert oder welchen workaound man benutzen kann?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947635</guid><dc:creator><![CDATA[eem]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:07:44 GMT]]></title><description><![CDATA[<p>Klappt es denn, wenn du bei der Definition des Operators den kompletten Typ angibst?</p>
<pre><code class="language-cpp">template&lt;class S&gt;
Class6&lt;S&gt;::Subclass&amp;
Class6&lt;S&gt;::Subclass::operator= (const Class6&lt;S&gt;::Subclass&amp; rhs)
{
  return *this;
}
</code></pre>
<p>(und ein typedef kann man afaik nicht mit template-Parametern ausstatten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947640</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:09:46 GMT]]></title><description><![CDATA[<p>eem schrieb:</p>
<blockquote>
<p>ergibt folgenden Fehler:</p>
<pre><code>../Class6.cpp:104: error: expected constructor, destructor, or type conversion before '&amp;' token
../Class6.cpp:104: error: expected `;' before '&amp;' token
</code></pre>
</blockquote>
<p>*.cpp finde etwas seltsam<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/947642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947642</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:16:44 GMT]]></title><description><![CDATA[<p>miller_m schrieb:</p>
<blockquote>
<p>eem schrieb:</p>
<blockquote>
<p>ergibt folgenden Fehler:</p>
<pre><code>../Class6.cpp:104: error: expected constructor, destructor, or type conversion before '&amp;' token
../Class6.cpp:104: error: expected `;' before '&amp;' token
</code></pre>
</blockquote>
<p>*.cpp finde etwas seltsam<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html</a></p>
</blockquote>
<p>das wär dann aber ein linker fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>versuchs einfach mal so:</p>
<pre><code class="language-cpp">template &lt;class S&gt;
class Class6
{

  class Subclass
  {

    // copy assignment operator
    Subclass&amp; operator= (const Subclass&amp; rhs);
  };// fehlendes;
};//ebenso

template&lt;class S&gt;
typename Class6&lt;S&gt;::Subclass&amp;//typename
Class6&lt;S&gt;::Subclass::operator= (const Subclass&amp; rhs)
{
  return *this;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/947646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947646</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:14:32 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>das wär dann aber ein linker fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>stimmt auffällig :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947647</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:14:32 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:17:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Danke erstmal für eure Anteilnahme <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code>template&lt;class S&gt;
  Class6&lt;S&gt;::Subclass&amp;
::Package1::Class6&lt;S&gt;::Subclass::operator= (const ::Package1::Class6&lt;S&gt;::Subclass&amp; rhs){
  return *this;
  };
</code></pre>
<p>die Schreibweise bringt nichts, weder im .cpp file, noch im header und führt zur gleichen Fehlermeldung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947650</guid><dc:creator><![CDATA[eem]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:18:25 GMT]]></title><description><![CDATA[<p>//edit ich geb dem post mal doch nen sinn^^</p>
<p>siehe meinen letzten post, da hab ich geedited</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947652</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:18:25 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:24:13 GMT]]></title><description><![CDATA[<p>[quote=&quot;otze]<br />
versuchs einfach mal so:</p>
<pre><code class="language-cpp">template &lt;class S&gt;
class Class6
{

  class Subclass
  {

    // copy assignment operator
    Subclass&amp; operator= (const Subclass&amp; rhs);
  };// fehlendes;
};//ebenso

template&lt;class S&gt;
typename Class6&lt;S&gt;::Subclass&amp;//typename
Class6&lt;S&gt;::Subclass::operator= (const Subclass&amp; rhs)
{
  return *this;
}
</code></pre>
<p>[/quote]</p>
<p>Herrvorragend. So macht der compiler alles wunderbar. Danke euch, ich werd mein neues Wissen gleich verbreiten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Frohes Fest und so, gell?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947655</guid><dc:creator><![CDATA[eem]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:24:13 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:26:00 GMT]]></title><description><![CDATA[<p>//edit geht als Gast nicht.</p>
<p>Aber seltsam ist es dennoch, dass dieses Problem nur beim coppy-ass-c'tor auftritt. default c'tor, default d'tor und copy-c'tor brauchen dieses typename nicht.<br />
Aber okay...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947658</guid><dc:creator><![CDATA[eem]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:26:00 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:32:34 GMT]]></title><description><![CDATA[<p>eem schrieb:</p>
<blockquote>
<p>default c'tor, default d'tor und copy-c'tor brauchen dieses typename nicht.</p>
</blockquote>
<p>Weil die Construktoren und der Destruktor keinen Rückgabetyp haben, den du mit einem expliziten &quot;typename&quot; kennzeichnen mußt. Wenn eine andere Funktion einen &quot;Class6&lt;S&gt;::Subclass&quot; zurückgeben will, brauchst du es wieder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/947662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947662</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit Nested Classes - Compiler Error on Thu, 22 Dec 2005 10:34:35 GMT]]></title><description><![CDATA[<p>verstehe, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947665</guid><dc:creator><![CDATA[eem]]></dc:creator><pubDate>Thu, 22 Dec 2005 10:34:35 GMT</pubDate></item></channel></rss>