<?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[Vector mit komplexen Datentypen unter Linux]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe schon unzählige male das Template &quot;vector&quot; benutzt um komplexe Datentypen zu speichern, irgendwie klappts nicht in Linux.</p>
<pre><code>...
#include &lt;vector&gt;
...
using namespace std;
...
int main(){

class Pos {
public:
  double x;
  double y;

  Pos (double _x, double _y){
    x = _x;
    y = _y;
  }
};
...
vector&lt;Pos&gt; v;
...
return 0;
}
</code></pre>
<p>Der Compiler meckert jetzt immer:<br />
template argument 1 invalid<br />
template argument 2 invalid<br />
invalid type in declaration before ';' token</p>
<p>Weiß jemand Rat woran das liegen könnte?<br />
Ist der Compiler zu doof oder zu alt?<br />
Verwende den gnu g++ 4.4.3 unter Ubuntu10.<br />
Das ganze läuft auf einer virtuellen Maschine. (Virtual Box)</p>
<p>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>
]]></description><link>https://www.c-plusplus.net/forum/topic/288976/vector-mit-komplexen-datentypen-unter-linux</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 13:23:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288976.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Jun 2011 14:21:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 14:33:25 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe schon unzählige male das Template &quot;vector&quot; benutzt um komplexe Datentypen zu speichern, irgendwie klappts nicht in Linux.</p>
<pre><code>...
#include &lt;vector&gt;
...
using namespace std;
...
int main(){

class Pos {
public:
  double x;
  double y;

  Pos (double _x, double _y){
    x = _x;
    y = _y;
  }
};
...
vector&lt;Pos&gt; v;
...
return 0;
}
</code></pre>
<p>Der Compiler meckert jetzt immer:<br />
template argument 1 invalid<br />
template argument 2 invalid<br />
invalid type in declaration before ';' token</p>
<p>Weiß jemand Rat woran das liegen könnte?<br />
Ist der Compiler zu doof oder zu alt?<br />
Verwende den gnu g++ 4.4.3 unter Ubuntu10.<br />
Das ganze läuft auf einer virtuellen Maschine. (Virtual Box)</p>
<p>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>
]]></description><link>https://www.c-plusplus.net/forum/post/2084284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084284</guid><dc:creator><![CDATA[anjohn]]></dc:creator><pubDate>Sun, 26 Jun 2011 14:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 14:39:33 GMT]]></title><description><![CDATA[<p>Nein der Compiler ist zu neu, dein Code ist zu doof und zu alt <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="😉"
    /> . Wobei ich mir eigentlich nicht vorstellen kann, dass den jemals irgendein Compiler so geschluckt hat. Das Problem hier ist, lokale Klassen sind keine gültigen Templateparameter. Was mich gerade wundert, dass du nur so eine kurze Fehlermeldung bekommst, mein g++ 4.4.4 sagt nämlich ziemlich eindeutig:</p>
<pre><code>error: template argument for ‘template&lt;class _Tp&gt; class std::allocator’ uses local type ‘main()::Pos’
error:   trying to instantiate ‘template&lt;class _Tp&gt; class std::allocator’
</code></pre>
<p>edit: Und außerdem fehlt, so wie du das hier schreibst, vor <code>vector</code> noch ein <code>std::</code> .</p>
<p>edit2: Von der Art wie die Klasse Pos aufgebaut ist, nehme ich mal an, dass die Lokalität hier wohl ein Versehen ist, richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084288</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 26 Jun 2011 14:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 14:53:00 GMT]]></title><description><![CDATA[<p>Das std:: fehlt nicht, da oben &quot;using namespace std&quot;!</p>
<p>Die Klasse Pos hab ich mir aus dem Finger gesaugt, da ausreichend. Hätte erst den ganzen Code aus der VM kopieren müssen. Lokalitäten sind aus Faulheit entstanden <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>
<p>Habe den gesamten Code in MVS2010 gecoded, da mir die VM zu lahm war. Jetzt habe ich das Problem, dass in der VM nichts mehr funktioniert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Der Compiler von Visual Studio 2010 hat sowas geschluckt. Und da war die Klasse Pos nur ein Struct.<br />
Der Tipp, dass eine Templateklasse nicht lokal sein darf ist schon mal ganz gut.</p>
<p>Ich guck mal wie weit ich damit jetzt komme. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084295</guid><dc:creator><![CDATA[anjohn]]></dc:creator><pubDate>Sun, 26 Jun 2011 14:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 14:55:15 GMT]]></title><description><![CDATA[<p>anjohn schrieb:</p>
<blockquote>
<p>Die Klasse Pos hab ich mir aus dem Finger gesaugt, da ausreichend. Hätte erst den ganzen Code aus der VM kopieren müssen. Lokalitäten sind aus Faulheit entstanden <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>
</blockquote>
<p>So kann man dir aber nicht helfen. Du musst 1:1 den Code zeigen der den Fehler produziert. Sonst baust du, wie hier, andere Fehler ein und das hilft niemanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084296</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 26 Jun 2011 14:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 15:18:02 GMT]]></title><description><![CDATA[<p>Nee, ich hab keine anderen Fehler eingebaut. Ich hab mein Problem einfach auf das wesentliche reduziert.</p>
<p>Eigentlich wollte ich euch so Arbeit ersparen, tut mir Leid wenn es nicht so war.</p>
<p>Jedenfalls lag es wirklich an der lokalen Klasse und alle weiteren 300 Fehlermeldungen waren darauf zu beziehen. Ich weiß nicht, wann ich darauf gekommen wäre, dass es an der lokalen Klassendeklaration liegt. Man baut halt schnell gerne irgendwo kurz ein Struct Pos {double x; double y;}; ein und im Microsoft Visual Studio 2010 hat es wie gesagt wunderbar funktioniert!</p>
<p>Danke <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>
<p>&quot;Compiler zu neu, Code zu doof&quot; trifft es irgendwo im Kern :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084303</guid><dc:creator><![CDATA[anjohn]]></dc:creator><pubDate>Sun, 26 Jun 2011 15:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 15:34:01 GMT]]></title><description><![CDATA[<p>In C++-11 darf man auch lokale structs in Templates verwenden. Mit dem g++ 4.5 geht es, wenn man -std=c++0x als Option mitgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084319</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 26 Jun 2011 15:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit komplexen Datentypen unter Linux on Sun, 26 Jun 2011 15:40:41 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>In C++-11 darf man auch lokale structs in Templates verwenden. Mit dem g++ 4.5 geht es, wenn man -std=c++0x als Option mitgibt.</p>
</blockquote>
<p>Cool, für die Zukunft gut zu wissen! Solch eine Tatsache hatte ich auch erwartet...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084325</guid><dc:creator><![CDATA[anjohn]]></dc:creator><pubDate>Sun, 26 Jun 2011 15:40:41 GMT</pubDate></item></channel></rss>