<?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 Variablendeklaration]]></title><description><![CDATA[<p>Aus der <a href="http://sourceforge.net/projects/nnetlib/" rel="nofollow">NNLib</a> habe ich folgende Zeilen:</p>
<pre><code class="language-cpp">class Node {
// blubb
}

//...

template &lt;class LINK, class NODE,class INSERTER&gt; std::istream&amp; readLinks(std::istream &amp;i,INSERTER ins,const std::map&lt;std::string,NODE*&gt; &amp;where) {
  LINK *l;NODE *from,*to;std::string s,t;

  std::map&lt;std::string, NODE* &gt;::const_iterator f; // &lt;- Problema

//... usw
}
</code></pre>
<p>Beim Versuch das Ganze mit g++ zu compilieren gibt's dazu die Meldung</p>
<blockquote>
<p>src/NNLib-0.1/graph.h:234: error: expected ';' before 'f'</p>
</blockquote>
<p>Wo koennte hier das Problem liegen?<br />
Schreibe ich spasseshalber int statt NODE*, gibt es zwar keine Fehler, kann aber nicht Sinn der Sache sein.<br />
Setze ich vor das f ein &quot;;&quot;, gibt es auch keine neuen Fehler, ausser dass f dann natuerlich nicht mehr definiert ist.</p>
<p>Verwendet wird g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279799/problem-mit-variablendeklaration</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 10:09:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279799.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Jan 2011 01:00:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Tue, 04 Jan 2011 01:00:39 GMT]]></title><description><![CDATA[<p>Aus der <a href="http://sourceforge.net/projects/nnetlib/" rel="nofollow">NNLib</a> habe ich folgende Zeilen:</p>
<pre><code class="language-cpp">class Node {
// blubb
}

//...

template &lt;class LINK, class NODE,class INSERTER&gt; std::istream&amp; readLinks(std::istream &amp;i,INSERTER ins,const std::map&lt;std::string,NODE*&gt; &amp;where) {
  LINK *l;NODE *from,*to;std::string s,t;

  std::map&lt;std::string, NODE* &gt;::const_iterator f; // &lt;- Problema

//... usw
}
</code></pre>
<p>Beim Versuch das Ganze mit g++ zu compilieren gibt's dazu die Meldung</p>
<blockquote>
<p>src/NNLib-0.1/graph.h:234: error: expected ';' before 'f'</p>
</blockquote>
<p>Wo koennte hier das Problem liegen?<br />
Schreibe ich spasseshalber int statt NODE*, gibt es zwar keine Fehler, kann aber nicht Sinn der Sache sein.<br />
Setze ich vor das f ein &quot;;&quot;, gibt es auch keine neuen Fehler, ausser dass f dann natuerlich nicht mehr definiert ist.</p>
<p>Verwendet wird g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002030</guid><dc:creator><![CDATA[Nobuo T]]></dc:creator><pubDate>Tue, 04 Jan 2011 01:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Tue, 04 Jan 2011 01:17:03 GMT]]></title><description><![CDATA[<p>Wenn ein Member-Typ (hier <code>const_iterator</code> ) von Template-Parametern (hier <code>NODE</code> ) abhängt, musst du das Schlüsselwort <code>typename</code> verwenden:</p>
<pre><code class="language-cpp">typename std::map&lt;std::string, NODE* &gt;::const_iterator f;
</code></pre>
<p>Das erklärt auch, warum es mit <code>int</code> geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002031</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 04 Jan 2011 01:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Tue, 04 Jan 2011 01:30:08 GMT]]></title><description><![CDATA[<p>Jo, das scheint's gewesen zu sein.<br />
Man, dieser ganze Frickel-Code hier steckt wirklich voller Tuecken. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /><br />
Aber gut zu wissen. Danke. Wenn ich dieses Projekt ueberstanden habe, brauche ich wenigstens anschliessend ein C++-Buch hoffentlich nur noch als Referenz. <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/2002036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002036</guid><dc:creator><![CDATA[Nobuo T]]></dc:creator><pubDate>Tue, 04 Jan 2011 01:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Wed, 05 Jan 2011 15:39:10 GMT]]></title><description><![CDATA[<p>Zu frueh gefreut: Noch so'n Ding. Hat wahrscheinlich was mit der Sache zu tun und kommt aus der selben Lib...</p>
<p>Diesmal bekomme ich folgendes:</p>
<blockquote>
<p>error: too few template-parameter-lists</p>
</blockquote>
<p>und hier der Code dazu:</p>
<pre><code class="language-cpp">void NeuralNet::setInput(const std::vector&lt;double&gt; &amp;inV) throw (length_error) {

  if (inV.size() != VI.size()) throw length_error(&quot;inputsize&quot;);
// so geht's:
//vector&lt;InputTerminal*&gt;::const_iterator i=VI.begin();
//vector&lt;double&gt;::const_iterator v=inV.begin();

// wenn ich aber hier deklariere, geht's nicht:
  for (vector&lt;InputTerminal*&gt;::const_iterator i=VI.begin(),
       vector&lt;double&gt;::const_iterator v=inV.begin(); // &lt;- in der Zeile gibt's den Fehler
       i != VI.end();
       i++, v++) {
    (*i)-&gt;set(*v);
  }
};
</code></pre>
<p>Was laeuft diesmal falsch? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2002747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002747</guid><dc:creator><![CDATA[Nobuo T]]></dc:creator><pubDate>Wed, 05 Jan 2011 15:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Wed, 05 Jan 2011 15:56:19 GMT]]></title><description><![CDATA[<p>Das funktioniert genausowenig wie</p>
<pre><code>int i=2, double j=5;
</code></pre>
<p>Was funktioniert ist so etwas:</p>
<pre><code>int i=2, j=5;
</code></pre>
<p>und so etwas:</p>
<pre><code>int i=2, *j=0;
</code></pre>
<p>Es darf nur <em>ein</em> Typ-Spezifizierer auftauchen und ein oder mehrere Deklaratoren.</p>
<pre><code>int i=2, *j=0;
^^^ ^    ^^
TS  D1   D2

TS     = Typ-Spezifizierer
D1, D2 = Deklaratoren
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002761</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 05 Jan 2011 15:56:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Wed, 05 Jan 2011 15:55:12 GMT]]></title><description><![CDATA[<p>Du kannst in einer for-Schleife nicht zwei verschiedene Variablentypen deklarieren, d.h.</p>
<pre><code class="language-cpp">for(int x, double y; ;)
</code></pre>
<p>würde genauso zu einem Fehler führen (das solltest du aber wissen ;-).<br />
Also mindestens eine Variable vor der Schleife daklarieren.</p>
<p>Und dein geposteter Code steht original so in der NNLib? Welcher Compiler schluckt das denn (als Erweiterung)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002765</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 05 Jan 2011 15:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablendeklaration on Wed, 05 Jan 2011 16:11:36 GMT]]></title><description><![CDATA[<p>Ok, danke. <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>
<p>Ne, ich habe keinen Peil von C++. <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="😃"
    /> Musste mich (zum Glueck) bisher nicht naeher damit befassen. <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>
<p>Ich bin davon ausgegangen, man kann mit Komma statt Semikolon getrennt quasi Beliebiges in dieses for-Dingsi reinpacken...</p>
<p>Also original steht die Deklaration auch davor. Aber anders. Die Zuweisungen stehen dafuer noch in der for-Schleife. So:</p>
<pre><code class="language-cpp">void NeuralNet::setInput(const std::vector&lt;double&gt; &amp;inV) throw (length_error) {

  if (inV.size() != VI.size()) throw length_error(&quot;inputsize&quot;);
  InputTerminal** i;
  double* v;

// hier meckert g++ dann, dass die Typen nicht zusammen passen...
  for (i=VI.begin(), v=inV.begin(); i != VI.end(); i++, v++) {
    (*i)-&gt;set(*v);
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002774</guid><dc:creator><![CDATA[Nobuo T]]></dc:creator><pubDate>Wed, 05 Jan 2011 16:11:36 GMT</pubDate></item></channel></rss>