<?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[[SOLVED] template problem]]></title><description><![CDATA[<p>'N Abend.</p>
<p>Habe da ein kleines template Problem, an dem ich nun schon länger kaue.</p>
<p>Es geht um folgendes:</p>
<pre><code class="language-cpp">// resMgr.h

#include &lt;map&gt;
#include &lt;string&gt;

template&lt;typename DATA, typename TAG&gt;
class Handle
{
public:
Handle() { }

// Handle(const std::map&lt;std::string, DATA*&gt;::iterator&amp; it) : _it(it) { }

~Handle() { }

private:
std::map&lt;std::string, DATA*&gt;::iteratior _it; // &lt;- fehler?
};
</code></pre>
<p>Die Fehlermeldung vom g++ (4.1.1) besagt:</p>
<blockquote>
<p>[/home/jhg/repositories/util/resMgr.h:17: error: expected ';' before '_it'<br />
make: *** [test.o] Error 1</p>
</blockquote>
<p>Wenn man den zweiten Konstruktor wieder zu lässt, wird daraus sogar</p>
<blockquote>
<p>/home/jhg/repositories/util/resMgr.h:12: error: expected unqualified-id before '&amp;' token<br />
/home/jhg/repositories/util/resMgr.h:12: error: expected ',' or '...' before '&amp;' token<br />
/home/jhg/repositories/util/resMgr.h:12: error: ISO C++ forbids declaration of 'parameter' with no type<br />
/home/jhg/repositories/util/resMgr.h:17: error: expected ';' before '_itResource'<br />
/home/jhg/repositories/util/resMgr.h: In constructor 'Handle&lt;DATA, TAG&gt;::Handle(int)':<br />
/home/jhg/repositories/util/resMgr.h:12: error: class 'Handle&lt;DATA, TAG&gt;' does not have any field named '_it'<br />
/home/jhg/repositories/util/resMgr.h:12: error: 'it' was not declared in this scope<br />
make: *** [test.o] Error 1</p>
</blockquote>
<p>Weiß jemand was ich falsch mache?</p>
<p>Wenn ich im typ der std::map DATA* durch int* ersetze kompiliert g++ in beiden Fällen anstandslos. Nur mit dem template Parameter klappt das nicht.</p>
<p>Muss ich den iterator oder die map vorher noch irgendwie speziell deklarieren oder sowas?</p>
<p>Wäre für jeden Hinweis dankbar... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165874/solved-template-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 01:50:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165874.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Nov 2006 19:17:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [SOLVED] template problem on Thu, 23 Nov 2006 19:34:16 GMT]]></title><description><![CDATA[<p>'N Abend.</p>
<p>Habe da ein kleines template Problem, an dem ich nun schon länger kaue.</p>
<p>Es geht um folgendes:</p>
<pre><code class="language-cpp">// resMgr.h

#include &lt;map&gt;
#include &lt;string&gt;

template&lt;typename DATA, typename TAG&gt;
class Handle
{
public:
Handle() { }

// Handle(const std::map&lt;std::string, DATA*&gt;::iterator&amp; it) : _it(it) { }

~Handle() { }

private:
std::map&lt;std::string, DATA*&gt;::iteratior _it; // &lt;- fehler?
};
</code></pre>
<p>Die Fehlermeldung vom g++ (4.1.1) besagt:</p>
<blockquote>
<p>[/home/jhg/repositories/util/resMgr.h:17: error: expected ';' before '_it'<br />
make: *** [test.o] Error 1</p>
</blockquote>
<p>Wenn man den zweiten Konstruktor wieder zu lässt, wird daraus sogar</p>
<blockquote>
<p>/home/jhg/repositories/util/resMgr.h:12: error: expected unqualified-id before '&amp;' token<br />
/home/jhg/repositories/util/resMgr.h:12: error: expected ',' or '...' before '&amp;' token<br />
/home/jhg/repositories/util/resMgr.h:12: error: ISO C++ forbids declaration of 'parameter' with no type<br />
/home/jhg/repositories/util/resMgr.h:17: error: expected ';' before '_itResource'<br />
/home/jhg/repositories/util/resMgr.h: In constructor 'Handle&lt;DATA, TAG&gt;::Handle(int)':<br />
/home/jhg/repositories/util/resMgr.h:12: error: class 'Handle&lt;DATA, TAG&gt;' does not have any field named '_it'<br />
/home/jhg/repositories/util/resMgr.h:12: error: 'it' was not declared in this scope<br />
make: *** [test.o] Error 1</p>
</blockquote>
<p>Weiß jemand was ich falsch mache?</p>
<p>Wenn ich im typ der std::map DATA* durch int* ersetze kompiliert g++ in beiden Fällen anstandslos. Nur mit dem template Parameter klappt das nicht.</p>
<p>Muss ich den iterator oder die map vorher noch irgendwie speziell deklarieren oder sowas?</p>
<p>Wäre für jeden Hinweis dankbar... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180272</guid><dc:creator><![CDATA[jhg]]></dc:creator><pubDate>Thu, 23 Nov 2006 19:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] template problem on Thu, 23 Nov 2006 19:31:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typename std::map&lt;std::string, DATA*&gt;::iterator _it;
</code></pre>
<p>Du musst deinem Compiler sagen, dass es sich bei iterator um einen Typ handelt, denn das kann er auf Grund der Abhängigkeit von DATA nicht selbst feststellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180290</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 23 Nov 2006 19:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] template problem on Thu, 23 Nov 2006 19:33:57 GMT]]></title><description><![CDATA[<p>Ergebensten Dank <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/1180292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180292</guid><dc:creator><![CDATA[jhg]]></dc:creator><pubDate>Thu, 23 Nov 2006 19:33:57 GMT</pubDate></item></channel></rss>