<?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[Frage zur templatespezialisierung]]></title><description><![CDATA[<p>also ich habe eine kleine frage zur template spezialisierung</p>
<p>so sehen die templates aus (TemplDecl.h)</p>
<pre><code class="language-cpp">template&lt;int I, const char* H, int N&gt;class ZahlenFeld
{
  ....
}

template&lt;int I, const char *H, int N, const long* A&gt; class DiskretFeld : public
  ZahlenFeld&lt;I, H, N &gt;
{
 .....
}
</code></pre>
<p>hier ein typedef</p>
<pre><code class="language-cpp">const char typeName[254] = &quot;typename&quot; ;
const long ary[5] ;

typedef DiskretFeld&lt;1,typeName, 2, ary&gt; beispielType ;
</code></pre>
<p>und die verwendung in test.h</p>
<pre><code class="language-cpp">beispielType x ;
</code></pre>
<p>vs6 spuckt mir folgende meldung aus</p>
<blockquote>
<p>TemplDecl.h(185) : error C2971: 'ZahlenFeld' : Vorlagenargument 'H' : Ungueltige Adresse der lokalen Variablen 'H'<br />
TemplDecl.h(233) : Siehe Deklaration von 'ZahlenFeld'<br />
TemplDecl.h(356) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage '?$ZahlenFeld@$03$1H0?0'  
\\test.h(35) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'DiskretFeld<1,&char * typeName,2,&long const * const ary  
ime>'  
TemplDecl.h(191) : fatal error C1903: Weiterverarbeitung nach vorhergehendem Fehler nicht moeglich; Kompilierung wird abgebrochen.  
TemplDecl.h(356) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage '?ZahlenFeld@$03$1H$0?0'<br />
Befehlszeilenwarnung D4028 : Fehler beim minimalen Neukompilieren, alles wird neu kompiliert</p>
</blockquote>
<p>bcb6 und VS2005 schlucken es</p>
<p>wenn ich das richtig sehe, kann VS6 auch mit aktuellstem sp nicht mit einem solchen Konstrukt umgehen. Gibt es einen trick den man ggf. anwenden könnte um es hinzukriegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/141485/frage-zur-templatespezialisierung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 13:20:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141485.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Mar 2006 13:56:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur templatespezialisierung on Wed, 22 Mar 2006 13:56:00 GMT]]></title><description><![CDATA[<p>also ich habe eine kleine frage zur template spezialisierung</p>
<p>so sehen die templates aus (TemplDecl.h)</p>
<pre><code class="language-cpp">template&lt;int I, const char* H, int N&gt;class ZahlenFeld
{
  ....
}

template&lt;int I, const char *H, int N, const long* A&gt; class DiskretFeld : public
  ZahlenFeld&lt;I, H, N &gt;
{
 .....
}
</code></pre>
<p>hier ein typedef</p>
<pre><code class="language-cpp">const char typeName[254] = &quot;typename&quot; ;
const long ary[5] ;

typedef DiskretFeld&lt;1,typeName, 2, ary&gt; beispielType ;
</code></pre>
<p>und die verwendung in test.h</p>
<pre><code class="language-cpp">beispielType x ;
</code></pre>
<p>vs6 spuckt mir folgende meldung aus</p>
<blockquote>
<p>TemplDecl.h(185) : error C2971: 'ZahlenFeld' : Vorlagenargument 'H' : Ungueltige Adresse der lokalen Variablen 'H'<br />
TemplDecl.h(233) : Siehe Deklaration von 'ZahlenFeld'<br />
TemplDecl.h(356) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage '?$ZahlenFeld@$03$1H0?0'  
\\test.h(35) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'DiskretFeld<1,&char * typeName,2,&long const * const ary  
ime>'  
TemplDecl.h(191) : fatal error C1903: Weiterverarbeitung nach vorhergehendem Fehler nicht moeglich; Kompilierung wird abgebrochen.  
TemplDecl.h(356) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage '?ZahlenFeld@$03$1H$0?0'<br />
Befehlszeilenwarnung D4028 : Fehler beim minimalen Neukompilieren, alles wird neu kompiliert</p>
</blockquote>
<p>bcb6 und VS2005 schlucken es</p>
<p>wenn ich das richtig sehe, kann VS6 auch mit aktuellstem sp nicht mit einem solchen Konstrukt umgehen. Gibt es einen trick den man ggf. anwenden könnte um es hinzukriegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021707</guid><dc:creator><![CDATA[Jason_Frost]]></dc:creator><pubDate>Wed, 22 Mar 2006 13:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur templatespezialisierung on Wed, 22 Mar 2006 15:16:13 GMT]]></title><description><![CDATA[<p>Ebenso wie Variablennamen dürfen auch Template-Parameter sinntragende Bezeichnungen sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021781</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Wed, 22 Mar 2006 15:16:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur templatespezialisierung on Wed, 22 Mar 2006 15:29:52 GMT]]></title><description><![CDATA[<p>arrays degenerieren hier nicht zu pointern (und sind folglich zu den template parametern inkompatibel). möglich wäre z.b. ein</p>
<pre><code class="language-cpp">typedef DiskretFeld&lt;1,&amp;typeName[0], 2, &amp;ary[0]&gt; beispielType ;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1021798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021798</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 22 Mar 2006 15:29:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur templatespezialisierung on Thu, 23 Mar 2006 09:58:48 GMT]]></title><description><![CDATA[<p>Any schrieb:</p>
<blockquote>
<p>Ebenso wie Variablennamen dürfen auch Template-Parameter sinntragende Bezeichnungen sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
</blockquote>
<p>naja der code is nicht von mir ... ich muss ihn nur von nem anderen compiler auf vs zum laufen bringen. Und glaub mir den schlimmsten codebrocken hast du nicht gesehen. Allerdings hat dein kommentar nichts mit meinem Problem zu tun, sprich entweder erzähl mir was brauchbares oder lass es!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a><br />
danke für die info, allerdings funkts so nicht</p>
<p>error C2964: Ungueltiger Ausdruck als Vorlagenparameter</p>
<p>naja ich hab mich gestern noch bischen eingelesen und VS6 unterstützt ja diverse template funktionalitäten nicht. Mit .net gehts ja ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022232</guid><dc:creator><![CDATA[Jason_Frost]]></dc:creator><pubDate>Thu, 23 Mar 2006 09:58:48 GMT</pubDate></item></channel></rss>