<?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[Templatespezialisierung in einer verschachtelten Klasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgende Klasse:</p>
<pre><code class="language-cpp">template &lt;typename T1, typename... Ts&gt;
class Outer
{
  class Inner
  {
    template &lt;size_t N&gt; struct Spec;
  };
};
</code></pre>
<p>Spec will ich jetzt außerhalb der Klasse definieren und für N=0 spezialisieren:</p>
<pre><code class="language-cpp">template &lt;size_t N, typename T1, typename... Ts&gt;
struct Outer&lt;T1, Ts...&gt;::Inner::Spec
{
  void bar()
  {
    Spec&lt;N-1&gt;::bar();
  }
};

template &lt;typename T1, typename... Ts&gt;
struct Outer&lt;T1, Ts...&gt;::Inner::Spec&lt;0&gt;
{
  void bar() {}
};
</code></pre>
<p>Allerdings bekomme ich seltsame Fehler beim compilieren, die ich nicht durch Google gefunden habe:</p>
<pre><code>invalid class name in declaration of 'class Outera&lt;T1, Ts...&gt;::Inner::Spec'
(Zeile 2, 2. Codeblock)

too few template parameter lists
new type may not be defined in a return type
(Zeile 11, 2. Codeblock)
</code></pre>
<p>Kompiliert hab ich mit g++ 4.5.3, -std=c++0x flag</p>
<p>Für Hinweise bin ich sehr dankbar <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/304933/templatespezialisierung-in-einer-verschachtelten-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 15:42:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304933.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Jun 2012 13:35:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templatespezialisierung in einer verschachtelten Klasse on Sun, 17 Jun 2012 15:04:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgende Klasse:</p>
<pre><code class="language-cpp">template &lt;typename T1, typename... Ts&gt;
class Outer
{
  class Inner
  {
    template &lt;size_t N&gt; struct Spec;
  };
};
</code></pre>
<p>Spec will ich jetzt außerhalb der Klasse definieren und für N=0 spezialisieren:</p>
<pre><code class="language-cpp">template &lt;size_t N, typename T1, typename... Ts&gt;
struct Outer&lt;T1, Ts...&gt;::Inner::Spec
{
  void bar()
  {
    Spec&lt;N-1&gt;::bar();
  }
};

template &lt;typename T1, typename... Ts&gt;
struct Outer&lt;T1, Ts...&gt;::Inner::Spec&lt;0&gt;
{
  void bar() {}
};
</code></pre>
<p>Allerdings bekomme ich seltsame Fehler beim compilieren, die ich nicht durch Google gefunden habe:</p>
<pre><code>invalid class name in declaration of 'class Outera&lt;T1, Ts...&gt;::Inner::Spec'
(Zeile 2, 2. Codeblock)

too few template parameter lists
new type may not be defined in a return type
(Zeile 11, 2. Codeblock)
</code></pre>
<p>Kompiliert hab ich mit g++ 4.5.3, -std=c++0x flag</p>
<p>Für Hinweise bin ich sehr dankbar <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2224179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224179</guid><dc:creator><![CDATA[mortified_penguin]]></dc:creator><pubDate>Sun, 17 Jun 2012 15:04:02 GMT</pubDate></item></channel></rss>