<?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[partielle template Spezialisierung?]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> Seid gegrüßt!</p>
<p>Ich möchte einer statischen Variablen einen bistimmten initialwert zuweisen, je nachdem welcher Typ gewählt wurde:</p>
<pre><code class="language-cpp">template &lt;class T, const int N&gt;
class tcon
{
    static T RANGE;
};

template&lt;class T, const int N&gt;
T tcon&lt;T,N&gt;::RANGE = 0;

//Das will ich, geht aber nicht!  :rage: 
template&lt;const int N&gt;
float tcon&lt;float, N&gt;::RANGE = 1.234;
</code></pre>
<p>Der Compiler klagt:</p>
<blockquote>
<p>tcon.h:13: Fehler: invalid use of undefined type »class ns::tcon&lt;float, N&gt;«<br />
tcon.h:3: Fehler: declaration of »class ns::tcon&lt;float, N&gt;«</p>
</blockquote>
<p>Ist das überhaupt möglich? Ich muss doch nun nicht die ganze Klasse dafür spezialisieren oder?!?!</p>
<p>Ein großes Dankeschön wieder im Vorraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>//Edit: warum nur funktioniert folgendes (kann ich nur leider überhaupt nicht gebrauchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> :</p>
<pre><code class="language-cpp">template&lt;&gt;
float tcon&lt;float, 293&gt;::RANGE = 1.234;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/212188/partielle-template-spezialisierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 17:24:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212188.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 May 2008 19:12:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to partielle template Spezialisierung? on Fri, 02 May 2008 19:39:47 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> Seid gegrüßt!</p>
<p>Ich möchte einer statischen Variablen einen bistimmten initialwert zuweisen, je nachdem welcher Typ gewählt wurde:</p>
<pre><code class="language-cpp">template &lt;class T, const int N&gt;
class tcon
{
    static T RANGE;
};

template&lt;class T, const int N&gt;
T tcon&lt;T,N&gt;::RANGE = 0;

//Das will ich, geht aber nicht!  :rage: 
template&lt;const int N&gt;
float tcon&lt;float, N&gt;::RANGE = 1.234;
</code></pre>
<p>Der Compiler klagt:</p>
<blockquote>
<p>tcon.h:13: Fehler: invalid use of undefined type »class ns::tcon&lt;float, N&gt;«<br />
tcon.h:3: Fehler: declaration of »class ns::tcon&lt;float, N&gt;«</p>
</blockquote>
<p>Ist das überhaupt möglich? Ich muss doch nun nicht die ganze Klasse dafür spezialisieren oder?!?!</p>
<p>Ein großes Dankeschön wieder im Vorraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>//Edit: warum nur funktioniert folgendes (kann ich nur leider überhaupt nicht gebrauchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> :</p>
<pre><code class="language-cpp">template&lt;&gt;
float tcon&lt;float, 293&gt;::RANGE = 1.234;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1502275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502275</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Fri, 02 May 2008 19:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Fri, 02 May 2008 21:13:34 GMT]]></title><description><![CDATA[<p>du müsstest die partielle spezialisierung AFAIK für die komplette Klasse machen.<br />
partielle SPezialisierung nur von Membern ist leider nicht drin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502339</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 02 May 2008 21:13:34 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Fri, 02 May 2008 21:25:35 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>du müsstest die partielle spezialisierung AFAIK für die komplette Klasse machen.<br />
partielle SPezialisierung nur von Membern ist leider nicht drin</p>
</blockquote>
<p>Hmm. Oder das N weglassen..</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class tcon
{
    static T RANGE;
};

template&lt;class T&gt;
T tcon&lt;T&gt;::RANGE = 0;

template&lt;&gt;
float tcon&lt;float&gt;::RANGE = 1.234f;
</code></pre>
<p>Ich krieg gerade nur nicht raus, warum es mit dem zweiten Template Parameter nicht geht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502342</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 02 May 2008 21:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Fri, 02 May 2008 22:09:25 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Ich krieg gerade nur nicht raus, warum es mit dem zweiten Template Parameter nicht geht..</p>
</blockquote>
<p>Weil das &quot;N weglassen&quot; genau wie das allerletzte beispiel von Pigeon eine vollständige Spezialisierung ist, im gegensatz zur Partiellen SPezialisierung, wo N immernoch offen ist. Zumindets ist das meine Vermutung <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/1502352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502352</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 02 May 2008 22:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 12:16:12 GMT]]></title><description><![CDATA[<p>Ach herje ... das hab ich mir anders vorgestellt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Wie mache ich das am geschicktesten?! Die Klasse erben? Wie weise ich dann aber nur den Wert zu?!</p>
<pre><code class="language-cpp">template&lt;class T, const int N&gt;
struct base
{
    static T value;
};   

template&lt;const int N&gt;
struct deri : public base&lt;float, N&gt;
{
    static float value; // Das kann ich doch nicht einfach &quot;überladen&quot;, da ja dann value 2x existiert, oder? 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1502558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502558</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Sat, 03 May 2008 12:16:12 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 13:05:48 GMT]]></title><description><![CDATA[<p>Spezialisier doch einfach die ganze Klasse..</p>
<pre><code class="language-cpp">template &lt;class T, class N&gt;
class tcon
{
    static T RANGE;
};

template&lt;class T,class N&gt;
T tcon&lt;T,N&gt;::RANGE = 0;

template&lt;class N&gt;
class tcon&lt;float,N&gt;{
	static float RANGE;
};

template&lt;class N&gt;
float tcon&lt;float,N&gt;::RANGE = 1.234f;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1502587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502587</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 03 May 2008 13:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 13:55:42 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Spezialisier doch einfach die ganze Klasse..</p>
<pre><code class="language-cpp">template &lt;class T, class N&gt;
class tcon
{
    static T RANGE;
};

template&lt;class T,class N&gt;
T tcon&lt;T,N&gt;::RANGE = 0;

template&lt;class N&gt;
class tcon&lt;float,N&gt;{
	static float RANGE;
};

template&lt;class N&gt;
float tcon&lt;float,N&gt;::RANGE = 1.234f;
</code></pre>
</blockquote>
<p>Dann muss ich sämtliche methoden und variablen von tcon in die tcon&lt;float,N&gt; kopieren oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502611</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Sat, 03 May 2008 13:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 14:08:41 GMT]]></title><description><![CDATA[<p>Wie ich das gerade sehe. Ja, sofern sie abhängig vom Template Paramter sind. Die anderen kannst du gut in einer Basisklasse haben und dann davon ableiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502626</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 03 May 2008 14:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 14:18:31 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Wie ich das gerade sehe. Ja, sofern sie abhängig vom Template Paramter sind. Die anderen kannst du gut in einer Basisklasse haben und dann davon ableiten.</p>
</blockquote>
<p>Jetzt sitz ich völlig auf der Leitung! Wie kann ich denn da ableiten?!</p>
<pre><code class="language-cpp">template &lt;class T, class N&gt;
class tcon
{
    static T RANGE;

public:
    void sort();
};

template&lt;class T,class N&gt;
T tcon&lt;T,N&gt;::RANGE = 0;

template&lt;class N&gt;
class tcon&lt;float,N&gt; : public tcon&lt;float,N&gt; //? Der Compiler streikt da ....
{
    static float RANGE;
};

template&lt;class N&gt;
float tcon&lt;float,N&gt;::RANGE = 1.234f;

int main()
{
    tcon&lt;float,23&gt; t;
    t.sort();
}
</code></pre>
<p>//Edit: Es ist so gut wie alles float T abhängig! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502636</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Sat, 03 May 2008 14:18:31 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 14:40:30 GMT]]></title><description><![CDATA[<p>lager doch die bestimmung der variable einfach in ne andere Klasse aus:</p>
<pre><code class="language-cpp">template&lt;class T,class N&gt;
class tconhelper
{
    protected:
        static T RANGE;
};

template&lt;class T,class N&gt;
T tconhelper&lt;T,N&gt;::RANGE = 0;

template&lt;class N&gt;
struct tconhelper&lt;float,N&gt;
{
    static float RANGE;
};

template&lt;class N&gt;
float tconhelper&lt;float,N&gt;::RANGE = 1.234f;

template&lt;class T,class N&gt;
class tcon:public tconhelper&lt;T,N&gt;
{
    typedef tconhelper&lt;T,N&gt; Helper;
    void test()
    {
        Helper::RANGE=3;//das ist der Preis den man hier zahlen muss ;)
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1502645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502645</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sat, 03 May 2008 14:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 14:50:55 GMT]]></title><description><![CDATA[<blockquote>
<p>//Edit: Es ist so gut wie alles float T abhängig!</p>
</blockquote>
<p>Im übrigen solltest du dir nochmal Gedanken machen. Wenn eh alles praktisch alles float ist. Warum dann ein template?! Da reicht doch eine normale Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502651</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 03 May 2008 14:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 15:00:16 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<blockquote>
<p>//Edit: Es ist so gut wie alles float T abhängig!</p>
</blockquote>
<p>Im übrigen solltest du dir nochmal Gedanken machen. Wenn eh alles praktisch alles float ist. Warum dann ein template?! Da reicht doch eine normale Klasse.</p>
</blockquote>
<p>Nicht von float, ich meinte T. Nochmal ganz konkret:</p>
<pre><code class="language-cpp">template&lt;class T, const int N&gt;
class tcon
{
     T reichtum;
     T schoenheit;

     static T RANGE;  :rolling_eyes: 

public:
     void beherrscheWelt();
     void gehZuBett();
     T sinnDesLebens();
};

template&lt;class T, const int N&gt;
T tcon&lt;T,N&gt;::RANGE = 0;
</code></pre>
<p>Ich möchte nun das alles <strong>völlig identisch</strong> ist wenn ich für T <strong>float wähle</strong> bis auf die Tatsache, dass der Initialwert der statischen Variable nicht 0 sondern 1,234 ist <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="🙂"
    /> Jedoch unabhängig von N <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Ich spüre die Lösung kommen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502656</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Sat, 03 May 2008 15:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 15:16:23 GMT]]></title><description><![CDATA[<p>Was macht eigentlich das N. Dir ist klar das für jedes Objekt dann ne neue Klasse erzeugt werden könnte -&gt; tcon&lt;int,4&gt; - tcon&lt;int,23&gt; - tcon&lt;int,342&gt; -&gt; 3 verschieden Klassen, wo es eine vllt auch getan hätte.</p>
<p>Vielleicht wäre es hier angebracht das N als Ctor Parameter zu nehmen, jenachdem was du damit überhaupt genau vor hast ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502659</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 03 May 2008 15:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 15:20:22 GMT]]></title><description><![CDATA[<p>Ansonsten ist das von otze die gängiste Lösung. Wenn T nur das &quot;Verhalten&quot; von RANGE bestimmt und sich nicht auf die anderen Daten &quot;so drastisch&quot; auswirkt, dann wäre es wirklich angebracht RANGE da raus zu holen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502660</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 03 May 2008 15:20:22 GMT</pubDate></item><item><title><![CDATA[Reply to partielle template Spezialisierung? on Sat, 03 May 2008 16:12:00 GMT]]></title><description><![CDATA[<p>Otze's Beitrag hab ich irgendwie unter den Tisch fallen lassen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> ! So mache ichs jetzt und es funktioniert hervorragend! Vielen Dank an alle <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="🙂"
    /> <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="🙂"
    /> <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/1502683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502683</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Sat, 03 May 2008 16:12:00 GMT</pubDate></item></channel></rss>