<?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 mit Templatespezialsierung]]></title><description><![CDATA[<p>ich kann mir denken, dass das Problem nicht neu hier ist, aber auch die Beiträge, die ich auf die Schnelle in der Forensuche gefunden hab, haben mich nicht unbegingt schlauer gemacht...</p>
<p>Ich habe eine &quot;normale&quot; Templateklasse (oder Klassentemplate?)</p>
<pre><code class="language-cpp">template&lt;class T, class U&gt;
class myClass
{
   // Standard-Zeugs

   void func1();
   void func2();
};
</code></pre>
<p>func1() ist dabei von einem speziellen T-Parameter abhängig, und func2() von einem U-Parameter. Der Rest ist unabhängig von T und U.</p>
<p>folgendes hat logischerweise nicht geholfen</p>
<pre><code class="language-cpp">template&lt;class U&gt;
void myClass&lt;OtherClass, U&gt;::func1()
{
}

template &lt;class T&gt;
void myClass&lt;T, YetAnotherClass&gt;::func2()
{
}
</code></pre>
<p>mittlerweile hat auch Google und SuFu bestätigt, dass das nicht geht, aber ich weiß trotzdem noch nicht, wie ich es richtig machen kann (ohne die ganze Klasse 5mal zu spezialisieren... da hätt ich gleich bei einzelnen Implementationen bleiben können)</p>
<p>Ich könnt jetzt zwar noch drei Stunden rumprobieren, aber erstens wollt ich vor der Mittagspause damit durch sein und zweitens fehlt mir an einem Montag Morgen die Motivation dazu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Ich bin zwar bei meiner Suche immer wieder drauf gestoßen, das ganze abzuleiten oder ein nested-struct einzubauen, aber wie genau weiß ich trotzdem nicht...</p>
<p>Auf ein paar Denkanstöße würd ich mich also freuen (kompletter Code muss nicht sein... bis zur Mittagspause ist noch genug Zeit ^^)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/231523/problem-mit-templatespezialsierung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 20:26:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231523.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jan 2009 08:51:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Templatespezialsierung on Mon, 12 Jan 2009 08:51:44 GMT]]></title><description><![CDATA[<p>ich kann mir denken, dass das Problem nicht neu hier ist, aber auch die Beiträge, die ich auf die Schnelle in der Forensuche gefunden hab, haben mich nicht unbegingt schlauer gemacht...</p>
<p>Ich habe eine &quot;normale&quot; Templateklasse (oder Klassentemplate?)</p>
<pre><code class="language-cpp">template&lt;class T, class U&gt;
class myClass
{
   // Standard-Zeugs

   void func1();
   void func2();
};
</code></pre>
<p>func1() ist dabei von einem speziellen T-Parameter abhängig, und func2() von einem U-Parameter. Der Rest ist unabhängig von T und U.</p>
<p>folgendes hat logischerweise nicht geholfen</p>
<pre><code class="language-cpp">template&lt;class U&gt;
void myClass&lt;OtherClass, U&gt;::func1()
{
}

template &lt;class T&gt;
void myClass&lt;T, YetAnotherClass&gt;::func2()
{
}
</code></pre>
<p>mittlerweile hat auch Google und SuFu bestätigt, dass das nicht geht, aber ich weiß trotzdem noch nicht, wie ich es richtig machen kann (ohne die ganze Klasse 5mal zu spezialisieren... da hätt ich gleich bei einzelnen Implementationen bleiben können)</p>
<p>Ich könnt jetzt zwar noch drei Stunden rumprobieren, aber erstens wollt ich vor der Mittagspause damit durch sein und zweitens fehlt mir an einem Montag Morgen die Motivation dazu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Ich bin zwar bei meiner Suche immer wieder drauf gestoßen, das ganze abzuleiten oder ein nested-struct einzubauen, aber wie genau weiß ich trotzdem nicht...</p>
<p>Auf ein paar Denkanstöße würd ich mich also freuen (kompletter Code muss nicht sein... bis zur Mittagspause ist noch genug Zeit ^^)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643746</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Mon, 12 Jan 2009 08:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Templatespezialsierung on Mon, 12 Jan 2009 09:10:09 GMT]]></title><description><![CDATA[<p>Denkanstoß 1:</p>
<pre><code class="language-cpp">template&lt;class T, class U&gt;
struct myBase 
{
	// Standard-Zeugs

protected:
	~myBase() {}
};

template&lt;class T, class U&gt; 
class myClass : public myBase&lt;T, U&gt;
{ 
public:
   void func1()
   {
   }

   void func2()
   {
   }
};

template&lt;class T&gt;
class myClass&lt;T, int&gt; : public myBase&lt;T, int&gt;
{
public:
	void func1()
	{
	}

	void func2()
	{
	}
};

// etcpp
</code></pre>
<p>Denkanstoß 2:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
struct Func1Policy 
{
	void operator()()
	{
	}
};

template&lt;&gt;
struct Func1Policy&lt;int&gt;
{
	void operator()()
	{
	}
};

template&lt;class T, class U, class P1 = Func1Policy&lt;T&gt; &gt; 
class myClass
{ 
	P1 p1;

public:
   void func1()
   {
	   p1();
   }

   void func2()
   {
   }
};
</code></pre>
<p>Denkanstoß 3:</p>
<pre><code class="language-cpp">template&lt;class T, class U &gt; 
class myClass
{ 
	template&lt; typename T1 = T &gt;
	struct Func1
	{
		static void call()
		{
		}
	};

	template&lt;&gt;
	struct Func1&lt;int&gt;
	{
		static void call()
		{
		}
	};

public:
    void func1()
    {
		Func1&lt;T&gt;::call();
    }

    void func2()
    {
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1643749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643749</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 12 Jan 2009 09:10:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Templatespezialsierung on Mon, 12 Jan 2009 13:15:56 GMT]]></title><description><![CDATA[<p>habs jetzt mit Ableitung gelöst... Deine dritte Möglichkeit hätt mir zwar gefallen, hat mich aber vor diverse Probleme gestellt (unter anderem hat der Compiler ein nacktes <code>template&lt;&gt;</code> innerhalb eines Klassentemplates mit einem Fehler quittiert [ <code>error: explicit specialization in non-namespace scope</code> ])</p>
<p>Danke trotzdem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643864</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Mon, 12 Jan 2009 13:15:56 GMT</pubDate></item></channel></rss>