<?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[Operator Überladung ... überladen ;-)]]></title><description><![CDATA[<p>Hallo,</p>
<p>es geht um folgendes:<br />
Angenommen wir haben folgende Klasse:</p>
<pre><code class="language-cpp">class Bla {
public:
  operator () (int x) {
    cout &lt;&lt; x &lt;&lt; endl;
  }

  operator () (int x, int y, int z) {
    cout &lt;&lt; x &lt;&lt; y &lt;&lt; z &lt;&lt; endl;
  }
};
</code></pre>
<p>Soweit ja kein Problem. Ich möchte jetzt aber noch eine Operator Überladung mit einer undefinierten Parameteranzahl haben:</p>
<pre><code class="language-cpp">operator () (...) {
  __ asm { /*asm code*/ };
}
</code></pre>
<p>Das Problem ist jetzt, dass die Überladung nicht mehr eindeutig ist; der Compiler weiß nicht, ob er<br />
operator() (...)<br />
oder<br />
operator() (int x)<br />
aufrufen soll, wenn der Operator so benutzt wird:</p>
<pre><code class="language-cpp">int main() 
{
  Bla b;
  b(1);
}
</code></pre>
<p>Der Hintergrund ist mir klar. Gibt es jedoch nicht dennoch eine Möglichkeit dem Compiler mitzuteilen, welche im Zweifel die primäre/default Überladung ist?</p>
<p>Ich habe schon mit dem Gedanken gespielt einen Dummy Parameter zu übergeben (z.B: void* der dann auf NULL gesetzt wird), da bräuchte ich in diesem Beispiel aber schon 2 und das wäre mehr als hässlich.</p>
<p>Wäre super, wenn jemand eine Idee hätte <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/252983/operator-überladung-überladen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 02:57:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252983.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Oct 2009 10:38:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 10:38:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>es geht um folgendes:<br />
Angenommen wir haben folgende Klasse:</p>
<pre><code class="language-cpp">class Bla {
public:
  operator () (int x) {
    cout &lt;&lt; x &lt;&lt; endl;
  }

  operator () (int x, int y, int z) {
    cout &lt;&lt; x &lt;&lt; y &lt;&lt; z &lt;&lt; endl;
  }
};
</code></pre>
<p>Soweit ja kein Problem. Ich möchte jetzt aber noch eine Operator Überladung mit einer undefinierten Parameteranzahl haben:</p>
<pre><code class="language-cpp">operator () (...) {
  __ asm { /*asm code*/ };
}
</code></pre>
<p>Das Problem ist jetzt, dass die Überladung nicht mehr eindeutig ist; der Compiler weiß nicht, ob er<br />
operator() (...)<br />
oder<br />
operator() (int x)<br />
aufrufen soll, wenn der Operator so benutzt wird:</p>
<pre><code class="language-cpp">int main() 
{
  Bla b;
  b(1);
}
</code></pre>
<p>Der Hintergrund ist mir klar. Gibt es jedoch nicht dennoch eine Möglichkeit dem Compiler mitzuteilen, welche im Zweifel die primäre/default Überladung ist?</p>
<p>Ich habe schon mit dem Gedanken gespielt einen Dummy Parameter zu übergeben (z.B: void* der dann auf NULL gesetzt wird), da bräuchte ich in diesem Beispiel aber schon 2 und das wäre mehr als hässlich.</p>
<p>Wäre super, wenn jemand eine Idee hätte <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1798986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798986</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 10:38:09 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 10:39:20 GMT]]></title><description><![CDATA[<blockquote>
<p>Soweit ja kein Problem. Ich möchte jetzt aber noch eine Operator Überladung mit einer undefinierten Parameteranzahl haben</p>
</blockquote>
<p>Die einfache Antwort: Geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798988</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 27 Oct 2009 10:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 10:41:26 GMT]]></title><description><![CDATA[<p>FrEEzE2046 schrieb:</p>
<blockquote>
<p>Soweit ja kein Problem. Ich möchte jetzt aber noch eine Operator Überladung mit einer undefinierten Parameteranzahl haben:</p>
<pre><code class="language-cpp">operator () (...) {
  __ asm { /*asm code*/ };
}
</code></pre>
</blockquote>
<p>Ui, das sieht nicht gut aus. Wie findest du in der Funktion denn raus, welche Typen die Parameter haben?</p>
<blockquote>
<p>Der Hintergrund ist mir klar. Gibt es jedoch nicht dennoch eine Möglichkeit dem Compiler mitzuteilen, welche im Zweifel die primäre/default Überladung ist?</p>
</blockquote>
<p>Geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798991</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Tue, 27 Oct 2009 10:41:26 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 10:59:14 GMT]]></title><description><![CDATA[<p>Registrierter Troll schrieb:</p>
<blockquote>
<p>Ui, das sieht nicht gut aus. Wie findest du in der Funktion denn raus, welche Typen die Parameter haben?</p>
</blockquote>
<p>Bitte solche Sachen einfach als Vorraussetzung sehen. Ich kann dir exakt sagen, welches Argument dann wie und wo auf dem Stack liegt und von welchem Typ es ist. Woher ich das weiß spielt hier keine Rolle.</p>
<p>Ich such halt einfach die Möglichkeit dass zu tun, was ich oben beschrieben habe. Mir ist klar, dass es so wohl nicht geht, aber vielleicht hat ja jemand von euch eine Idee, wie ich das trotzdem lösen könnte (z.B. mit einem zusätzlichen Parameter). Ich setze einfach mal auf eure Kreativität, denn aktuell fällt mir nichts &quot;schönes&quot; ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799009</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 10:59:14 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:04:57 GMT]]></title><description><![CDATA[<p>dann mach die anderen operatorfunktionen zu normalen (private) funktionen und wenn du mitkriegst das die andere funktion mit einem oder zwei parametern aufgerufen wurde dann rufst du die entsprechenden funktionen auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799011</guid><dc:creator><![CDATA[player4245]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:04:57 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:09:37 GMT]]></title><description><![CDATA[<p>player4245 schrieb:</p>
<blockquote>
<p>dann mach die anderen operatorfunktionen zu normalen (private) funktionen und wenn du mitkriegst das die andere funktion mit einem oder zwei parametern aufgerufen wurde dann rufst du die entsprechenden funktionen auf.</p>
</blockquote>
<p>Ist eine ganz gute Idee. Nur leider werde ich nicht mitbekommen, ob da jemand was auf den Stack gepusht hat oder nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799014</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:09:54 GMT]]></title><description><![CDATA[<p>FrEEzE2046 schrieb:</p>
<blockquote>
<p>Ich kann dir exakt sagen, welches Argument dann wie und wo auf dem Stack liegt und von welchem Typ es ist.</p>
</blockquote>
<p>Heißt das du kannst es mir sagen, willst aber nicht? Ich würde es sehr gerne wissen, wenn du da eine interessante Lösung hast.</p>
<blockquote>
<p>Ich setze einfach mal auf eure Kreativität, denn aktuell fällt mir nichts &quot;schönes&quot; ein.</p>
</blockquote>
<p>Mir fällt da außer einem speziellen Typen als ersten Parameter nichts ein.</p>
<pre><code class="language-cpp">enum dummytype { blubb};
operator()(dummytype, ...) {...}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799015</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:15:27 GMT]]></title><description><![CDATA[<p>Registrierter Troll schrieb:</p>
<blockquote>
<p>FrEEzE2046 schrieb:</p>
<blockquote>
<p>Ich kann dir exakt sagen, welches Argument dann wie und wo auf dem Stack liegt und von welchem Typ es ist.</p>
</blockquote>
<p>Heißt das du kannst es mir sagen, willst aber nicht? Ich würde es sehr gerne wissen, wenn du da eine interessante Lösung hast.</p>
</blockquote>
<p>Wenn du wüsstest, in welcher Klasse es sich befindet, wie die Struktur ist etc. dann könntest du es nachvollziehen.</p>
<p>Ich will nicht unhöflich sein und es hat daher auch nichts damit zu tun, dass ich es dir nicht sagen will. Da der Code jedoch an der Arbeit entsteht, darf ich ihn leider nicht veröffentlichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799016</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:23:58 GMT]]></title><description><![CDATA[<p>du könntest folgendes versuchen:</p>
<pre><code class="language-cpp">operator() (); //null parameter
operator() (int); //wie gehabt
template &lt;class T&gt;
operator() (T); //spezielle form deines gewünschten op mit 1 Parametern
template &lt;class T, class U&gt;
operator() (T, U); //spezielle Form deines gewünschten op mit 2 Parametern
operator() (int, int, int); //wie gehabt
template &lt;class T, class U, class V&gt;
operator() (T, U, V); //spezielle Form deines gewünschten op mit 3 Parametern
template &lt;class T, class U, class V&gt;
operator() (T, U, V, ...); //dein gewünschter op mit 4 und mehr Parametern
</code></pre>
<p>die templates biegst du alle einfach auf eine memberfunktion um, die eine normale ellipse als Parameter hat. (btw: ellipsen sind pfui...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799022</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:36:04 GMT]]></title><description><![CDATA[<p>Natürlich geht das. Bloss kannst du dir nicht aussuchen welche Funktion als besser bewertet und ausgewählt wird. Die &quot;...&quot; Funktion wird immer fix als schlechter bewertet, und kommt daher nur dran, wenn andere Funktionen nicht möglich sind:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

struct foo
{
	void operator () (int a) { std::cout &lt;&lt; &quot;a\n&quot;; }
	void operator () (int a, int b, int c) { std::cout &lt;&lt; &quot;a, b, c\n&quot;; }
	void operator () (...) { std::cout &lt;&lt; &quot;...\n&quot;; }
};

struct int_convertible
{
	operator int() const { return 123; }
};

struct long_convertible
{
	operator long() const { return 123; }
};

struct int_convertible_convertible
{
	operator int_convertible() const { return int_convertible(); }
};

int main(int argc, char** argv)
{
	foo f;
	f(1); // a
	f(1, 2); // ...
	f(1, 2, 3); // a, b, c
	f(1, 2, 3, 4); // ...
	f(&quot;...&quot;); // ...
	f(foo()); // ...

	// selbst hier wird die &quot;...&quot; funktion schlechter bewertet
	f('a'); // a
	f(1.1); // a
	f(123ull); // a
	f(int_convertible()); // a
	f(long_convertible()); // a (zwei konvertierungen! allerdings nur eine user-defined, daher OK, und a wird gewählt)

	// das *geht* nichtmehr mit a, daher kommt &quot;...&quot; dran:
	// (zwei user-defined conversions hintereinander werden nicht berücksichtigt)
	f(int_convertible_convertible());

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799029</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:42:25 GMT]]></title><description><![CDATA[<p>Ein viel wichtigeres Problem hat sich aufgetan. Ich benutze das Visual Studio 2008 Team Suite Edition und der C/C++ Optimization Compiler stürzt ständig ab.</p>
<p>Ist zwar nicht gerade so, dass ich nicht wüsste, was ihm da missfällt. Ich würde jedoch gerne die Optimierung für diesen Code-Abschnitt ausschalten.</p>
<p>Ein</p>
<pre><code class="language-cpp">#pragma optimize( &quot;&quot;, off )
</code></pre>
<p>hilft leider nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799032</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:46:22 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Natürlich geht das. Bloss kannst du dir nicht aussuchen welche Funktion als besser bewertet und ausgewählt wird. Die &quot;...&quot; Funktion wird immer fix als schlechter bewertet, und kommt daher nur dran, wenn andere Funktionen nicht möglich sind</p>
</blockquote>
<p>Bei mir sagt (oben genannter) Compiler:</p>
<pre><code>error C3066: there are multiple ways that an object of this type can be called with these arguments
</code></pre>
<p>Ich habe allerdings auch noch einen (void) Fall!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799034</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:46:22 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:53:19 GMT]]></title><description><![CDATA[<blockquote>
<p>Ist zwar nicht gerade so, dass ich nicht wüsste, was ihm da missfällt. Ich würde jedoch gerne die Optimierung für diesen Code-Abschnitt ausschalten.</p>
</blockquote>
<p>Code in eine eigene Compilierungseinheit (sprich: cpp-Datei) auslagern und entsprechende Einstellungen fuer diese Datei vornehmen.</p>
<p>Und zu deinem ganzen Problem jetzt die nicht ganz so einfache Antwort: In C gibt es va_list, fuer C++ hier mit Beispielen: <a href="http://www.cplusplus.com/reference/clibrary/cstdarg/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdarg/</a> .</p>
<p>Edit: Ich sehe aber grad, das hustbaer schon darauf verwiesen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799037</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:53:19 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 11:53:57 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Code in eine eigene Compilierungseinheit (sprich: cpp-Datei) auslagern und entsprechende Einstellungen fuer diese Datei vornehmen.</p>
<p>Und zu deinem ganzen Problem jetzt die nicht ganz so einfache Antwort: In C gibt es va_list, fuer C++ hier mit Beispielen: <a href="http://www.cplusplus.com/reference/clibrary/cstdarg/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdarg/</a> .</p>
</blockquote>
<p>1. Was heißt entsprechende Einstellungen? Auch nach deaktivierten Optimierung kommt der Fehler.</p>
<p>2. Ich kann va_list, aber dass hat nicht direkt mit meinem Problem zu tun, oder worauf willst du hinaus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799046</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 12:08:00 GMT]]></title><description><![CDATA[<p>Hm.<br />
OK, das checkt der MSVC dann nimmer - wundert mich jetzt auch etwas, aber ist halt so. Müsste mal im Standard nachlesen was der dazu sagt.</p>
<p>Den parameterlosen Overload weglassen, so dass bei Aufruf ohne Parameter einfach die &quot;...&quot; Variante ausgewählt wird ginge für dich nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799054</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 27 Oct 2009 12:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 12:09:36 GMT]]></title><description><![CDATA[<blockquote>
<p>Ist zwar nicht gerade so, dass ich nicht wüsste, was ihm da missfällt</p>
</blockquote>
<p>Was misfällt ihm denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799057</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 27 Oct 2009 12:09:36 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 12:18:31 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Den parameterlosen Overload weglassen, so dass bei Aufruf ohne Parameter einfach die &quot;...&quot; Variante ausgewählt wird ginge für dich nicht?</p>
</blockquote>
<p>Nein, leider nicht. Ich kann per Assembler ja schlecht überprüfen, ob da was auf dem Stack liegt oder nicht (außer den lokalen Variablen versteht sich).</p>
<p>hustbaer schrieb:</p>
<blockquote>
<blockquote>
<p>Ist zwar nicht gerade so, dass ich nicht wüsste, was ihm da missfällt</p>
</blockquote>
<p>Was misfällt ihm denn?</p>
</blockquote>
<p>Hat nichts mit dem Thema hier zu tun, aber:<br />
Mittlerweile kommt die Meldung nicht mehr, dennoch möchte er folgenden Code nicht compilieren:</p>
<pre><code class="language-cpp">template&lt;class Container,
         typename R, typename P1,
		 R (Container::*Func)(P1)&gt;
</code></pre>
<p>bei jedem Template Argument sagt er:</p>
<pre><code>could not deduce template argument for 'R'  // das gleiche für P1 und Func
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799063</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 12:18:31 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 12:21:23 GMT]]></title><description><![CDATA[<p>FrEEzE2046 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template&lt;class Container,
         typename R, typename P1,
		 R (Container::*Func)(P1)&gt;
</code></pre>
<p>bei jedem Template Argument sagt er:</p>
<pre><code>could not deduce template argument for 'R'  // das gleiche für P1 und Func
</code></pre>
</blockquote>
<p>Mangles code kann man wiedermal nur raten was da schief läuft. Meine Glaskugel mutmaßt dass du da ein Funktionstemplate hast und es ohne Angabe der Templateparameter aufrufst, und dass die Funktionsparameter nicht ausreichen um die Templateparameter herzuleiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799066</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 27 Oct 2009 12:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 12:26:40 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Mangles code kann man wiedermal nur raten was da schief läuft. Meine Glaskugel mutmaßt dass du da ein Funktionstemplate hast und es ohne Angabe der Templateparameter aufrufst, und dass die Funktionsparameter nicht ausreichen um die Templateparameter herzuleiten.</p>
</blockquote>
<p>Es existiert noch gar kein Code. Aber so lässt sich der Fehler generieren:</p>
<pre><code class="language-cpp">template&lt;class Container,
         typename R, typename P1,
		 R (Container::*Func)(P1)&gt;
blub()
{

}

//Aufruf:
class Bla {
public:
  int methode(int) {return 0;}

  void ui() {
    blub&lt;Bla, int, int, &amp;methode&gt;();
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799072</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 12:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 13:32:31 GMT]]></title><description><![CDATA[<blockquote>
<p>1. Was heißt entsprechende Einstellungen? Auch nach deaktivierten Optimierung kommt der Fehler.</p>
</blockquote>
<p>Ich habe dir nur gesagt, wie man die Optimierung ausschaltet. Der Fehler wird durch deinen Quelltext verursacht und hat nichts mit Optimierung zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799110</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 27 Oct 2009 13:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 13:44:22 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>1. Was heißt entsprechende Einstellungen? Auch nach deaktivierten Optimierung kommt der Fehler.</p>
</blockquote>
<p>Ich habe dir nur gesagt, wie man die Optimierung ausschaltet. Der Fehler wird durch deinen Quelltext verursacht und hat nichts mit Optimierung zu tun.</p>
</blockquote>
<p>Warum kommt dann die Meldung vom Optimization Compiler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799115</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Tue, 27 Oct 2009 13:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 13:45:28 GMT]]></title><description><![CDATA[<p>Ich glaube, du mußt explizit die Klasse angeben, d.h.</p>
<pre><code class="language-cpp">blub&lt;Bla, int, int, &amp;Bla::methode&gt;();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799116</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 27 Oct 2009 13:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Tue, 27 Oct 2009 17:48:55 GMT]]></title><description><![CDATA[<p>FrEEzE2046 schrieb:</p>
<blockquote>
<p>Warum kommt dann die Meldung vom Optimization Compiler?</p>
</blockquote>
<p>Weil der Microsoft Compiler nunmal ein optimierender Compiler ist, auch wenn die Optimierungen abgeschaltet sind?</p>
<p>So wie ein Auto in der Lage ist zu fahren, auch wenn der Motor jetzt gerade mal ausgeschaltet ist.</p>
<p>Th69 schrieb:</p>
<blockquote>
<p>Ich glaube, du mußt explizit die Klasse angeben, d.h.</p>
<pre><code class="language-cpp">blub&lt;Bla, int, int, &amp;Bla::methode&gt;();
</code></pre>
</blockquote>
<p>Vöölig richtig. Es gibt keine Funktion &amp;methode (zumindest nicht im Beispiel). Nur &amp;Bla::methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799272</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 27 Oct 2009 17:48:55 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Thu, 29 Oct 2009 14:24:51 GMT]]></title><description><![CDATA[<p>Ich habs inzwischen gelöst.<br />
Bzgl. des Compilers: Da hier extra der Name &quot;Optimization&quot; auftauchte, liegt der Verdacht doch nahe, dass es sich um einen Teil des Compilers handelt, der nur für Optimierung gedacht ist oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800248</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Thu, 29 Oct 2009 14:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Thu, 29 Oct 2009 14:28:16 GMT]]></title><description><![CDATA[<p>Liegt nahe, ist aber falsch.</p>
<p>Der Compiler von Microsoft für die Sprachen C und C++ heißt nunmal (auf deutsch) &quot;Microsoft C/C++-Optimierungscompiler&quot;.</p>
<p>Sehr gut nachzuvollziehen auch wenn Du cl.exe ohne Optionen startest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800253</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 29 Oct 2009 14:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung ... überladen ;-) on Thu, 29 Oct 2009 14:38:38 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>&quot;Microsoft C/C++-Optimierungscompiler&quot;.</p>
</blockquote>
<p>rofl</p>
<p>Der compiliert also Optimierungen <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/1800262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800262</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 29 Oct 2009 14:38:38 GMT</pubDate></item></channel></rss>