<?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 zu compile mysterium (für mich zumindest)]]></title><description><![CDATA[<p>Hallo,<br />
ich habe 2 Versionen die 1. kompiliert die 2. nicht. Ich habe keine Ahnung warum. Unter Vc6.x kompilieren beide. Sonstige (Comeau, 7.0,8.0) kompiliert die 2. nicht.<br />
Version 1:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

using std::vector;

struct Class1IF
{
};

class Class1 : public Class1IF
{
public:
	Class1(vector&lt;int&gt; t)
	{

	}
};

class Class2
{
public:
	Class2(Class1IF&amp; a)
	{

	}
};

int main(int argc, char **argv)
{
      //hier ist der Unterschied
	vector&lt;int&gt; test;
	Class1 class1(test);

	Class2 class2(class1);
}
</code></pre>
<p>Version 2:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

using std::vector;

struct Class1IF
{
};

class Class1 : public Class1IF
{
public:
	Class1(vector&lt;int&gt; t)
	{

	}
};

class Class2
{
public:
	Class2(Class1IF&amp; a)
	{

	}
};

int main(int argc, char **argv)
{
	vector&lt;int&gt; test;
	Class1 class1(vector&lt;int&gt;());

	Class2 test2(class1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/163186/frage-zu-compile-mysterium-für-mich-zumindest</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 23:39:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163186.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Oct 2006 18:38:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 18:38:01 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe 2 Versionen die 1. kompiliert die 2. nicht. Ich habe keine Ahnung warum. Unter Vc6.x kompilieren beide. Sonstige (Comeau, 7.0,8.0) kompiliert die 2. nicht.<br />
Version 1:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

using std::vector;

struct Class1IF
{
};

class Class1 : public Class1IF
{
public:
	Class1(vector&lt;int&gt; t)
	{

	}
};

class Class2
{
public:
	Class2(Class1IF&amp; a)
	{

	}
};

int main(int argc, char **argv)
{
      //hier ist der Unterschied
	vector&lt;int&gt; test;
	Class1 class1(test);

	Class2 class2(class1);
}
</code></pre>
<p>Version 2:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

using std::vector;

struct Class1IF
{
};

class Class1 : public Class1IF
{
public:
	Class1(vector&lt;int&gt; t)
	{

	}
};

class Class2
{
public:
	Class2(Class1IF&amp; a)
	{

	}
};

int main(int argc, char **argv)
{
	vector&lt;int&gt; test;
	Class1 class1(vector&lt;int&gt;());

	Class2 test2(class1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1162146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162146</guid><dc:creator><![CDATA[Fragezeichen_]]></dc:creator><pubDate>Thu, 26 Oct 2006 18:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 18:49:34 GMT]]></title><description><![CDATA[<p>Fragezeichen_ schrieb:</p>
<blockquote>
<p>ich habe 2 Versionen die 1. kompiliert die 2. nicht.</p>
</blockquote>
<p>Aha. &quot;kompiliert nicht&quot; - sehr intressant!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162152</guid><dc:creator><![CDATA[du idiot]]></dc:creator><pubDate>Thu, 26 Oct 2006 18:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 18:55:09 GMT]]></title><description><![CDATA[<p>Konstruktive Vorschläge sind immer willkomen. Den Benutzernamen hättest Du Dir allerdings sparen können. Ansonsten fand ich meinen Post nicht so schlecht.<br />
Wird der Beitrag nicht gelöscht war das meine letzte Aktivität in diesem Forum.</p>
<p>Hier der output von Comeau via html andere compiler habe ich leider nicht zur Hand</p>
<p>Comeau schrieb:</p>
<blockquote>
<p>&quot;ComeauTest.c&quot;, line 33: error: no instance of constructor &quot;Class2::Class2&quot; matches<br />
the argument list<br />
The argument types that you used are: (Class1 (std::vector&lt;int, std::allocator&lt;int&gt;&gt;<br />
(*)()))<br />
Class2 test2(class1);<br />
^</p>
<p>1 error detected in the compilation of &quot;ComeauTest.c&quot;.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1162154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162154</guid><dc:creator><![CDATA[Fragezeichen_]]></dc:creator><pubDate>Thu, 26 Oct 2006 18:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 18:59:54 GMT]]></title><description><![CDATA[<p>Hey lass dich doch von so ein idiot nicht fertig machen <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="😉"
    /><br />
sorry aber ich kann dir in dein jetzigen problem nicht weiter helfen da ich mich nin klassen noch nicht so gut auskenne warte einfach bist du eine Inteligentere Antworst bekommst <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="😃"
    /><br />
Ich find solche idioten voll nervig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162157</guid><dc:creator><![CDATA[Dying]]></dc:creator><pubDate>Thu, 26 Oct 2006 18:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 19:10:08 GMT]]></title><description><![CDATA[<p>mingw kompiliert die zweite variante auch nicht. wenn ich die instanz von Class1 per new erzeuge und mittels dereferenzoperator übergebe klappts.</p>
<p>frag mich, was da quer schiesst, bin ebenso ratlos ^^</p>
<p>_edit_</p>
<p>doch nich ratlos. das problem sind die () hinterm vector. spielt dabei keine rolle, obs ne template klasse oder irgendwas anderes ist. die () sind kein leerer konstruktoraufruf. die übergeben das template als funktion (oder so ähnlich), was nich hinhaut. da macht der compiler irgendnen müll draus. evtl. undefiniertes verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162160</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 26 Oct 2006 19:10:08 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 19:27:34 GMT]]></title><description><![CDATA[<p>Ja ich dachte bis jetzt immer es wird einfach ein temporäres Objekt angelegt.<br />
Wenn es an dieser Stelle ein Problem gäbe wäre es &quot;OK&quot;, aber es gibt ja erst bei der übergabe an den 2. ctor ein Problem. Das versteh ich nach wie vor nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162178</guid><dc:creator><![CDATA[Fragezeichen_]]></dc:creator><pubDate>Thu, 26 Oct 2006 19:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Thu, 26 Oct 2006 21:16:03 GMT]]></title><description><![CDATA[<p>Fragezeichen_ schrieb:</p>
<blockquote>
<p>Konstruktive Vorschläge sind immer willkomen. Den Benutzernamen hättest Du Dir allerdings sparen können. Ansonsten fand ich meinen Post nicht so schlecht.</p>
</blockquote>
<p>Ich sag dir trotzdem den Grund:</p>
<p>Das Problem liegt nicht in Zeile 33, sondern 31:</p>
<pre><code class="language-cpp">Class1 class1(vector&lt;int&gt;());
</code></pre>
<p>Dieses Konstrukt erstellt kein Objekt, sondern deklariert eine Funktion [afaik]. Hab das mal irgendwo gelesen (glaub C++ FAQ lite, musst mal schauen).</p>
<p>Das ganze lässt sich so lösen:</p>
<pre><code class="language-cpp">Class1 class1((vector&lt;int&gt;()));
// oder
Class1 class1 = Class1(vector&lt;int&gt;());
</code></pre>
<p>lg - du idiot [2]</p>
<p>[1] <a href="http://www.parashift.com/c++-faq-lite/" rel="nofollow">http://www.parashift.com/c++-faq-lite/</a><br />
[2] Das mist mein Nick!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162232</guid><dc:creator><![CDATA[du idiot]]></dc:creator><pubDate>Thu, 26 Oct 2006 21:16:03 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Fri, 27 Oct 2006 13:33:40 GMT]]></title><description><![CDATA[<p>du idiot schrieb:</p>
<blockquote>
<p>Das ganze lässt sich so lösen:</p>
<pre><code class="language-cpp">Class1 class1((vector&lt;int&gt;()));
// oder
Class1 class1 = Class1(vector&lt;int&gt;());
</code></pre>
</blockquote>
<p>Lässt sich auch einfacher, sofern der ctor nicht explicit ist, was ja hier der Fall ist, lösen:</p>
<pre><code class="language-cpp">class1 class1 = vector&lt;int&gt;();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1162241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162241</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 27 Oct 2006 13:33:40 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Fri, 27 Oct 2006 07:22:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn ich auch &quot;idiot&quot;s Vorgehensweise nicht gut finde, so hat er doch Recht, was die Compilermeldung angeht (sowohl, dass es sinnvoll ist, sie gleich zu posten als auch ihre Bedeutung).<br />
Der Compiler sagt ja &quot;klar&amp;deutlich&quot; <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="😉"
    /> :<br />
&quot;no instance of constructor &quot;Class2::Class2&quot; matches the argument list...&quot;<br />
=&gt; Kein Ctor mit passender Arugmentliste gefunden.</p>
<p>&quot;The argument types that you used are: (Class1 (std::vector&lt;int, std::allocator&lt;int&gt;&gt; (<em>)()))&quot;<br />
=&gt; Du nutzt Argumentliste: &quot;std::vector&lt;int, std::allocator&lt;int&gt;&gt; (</em>)()))&quot;</p>
<p>Das ist erstmal ein wenig unübersichtlich, aber wenn Du den vector-Ausdruck reduzierst zu einem X<br />
=&gt; X (*)()</p>
<p>Das ist der Typ &quot;Funktion, die void entgegennimmt und ein X zurückgibt&quot;.<br />
Sieht man als Mensch leider nicht so schnell, aber dafür gibt es ja den Compiler, damit er uns darauf hinweist. <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>Gruß,</p>
<p>Simon2.</p>
<p>P.S.: Ist übrigens kein &quot;blöder Fehler&quot; ... ist ziemlich Vielen schon passiert. Meistens gerade denen, die ihn jetzt schnell erkennen. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162344</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 27 Oct 2006 07:22:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Fri, 27 Oct 2006 08:05:13 GMT]]></title><description><![CDATA[<p>Danke an Du Idot und Simon2:</p>
<p>Was ich noch nicht verstehe...<br />
Der compiler beschwert sich wie gesagt so:<br />
no instance of constructor &quot;Class2::Class2&quot; matches the argument list...&quot;<br />
Meine argumentliste von Class2::Class2 ist nicht vector&lt;int&gt;() sondern class1 oder? Mein ctor von Class2 erwartet nur eine Referenz auf ein interface Class1IF und die gebe ich ihm ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162368</guid><dc:creator><![CDATA[Fragezeichen_]]></dc:creator><pubDate>Fri, 27 Oct 2006 08:05:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu compile mysterium (für mich zumindest) on Fri, 27 Oct 2006 13:37:07 GMT]]></title><description><![CDATA[<p>class1 ist aber keine Instanz vom Typ Class1, sondern wie bereits erwähnt eine Funktionsdeklaration. Deshalb kann Class2 einfach keine neue Instanz mit class1 erzeugen, da die Klasse dafür einfach keinen passenden ctor hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162524</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 27 Oct 2006 13:37:07 GMT</pubDate></item></channel></rss>