<?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[Functorprobleme]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bin gerade dabei, ein Functortemplate bei mir zu implementieren. Dazu will ich zwei Templateklassen verwenden, nämlich Event und Callback. Ein Event ist dabei eine Templateklasse, die einen vector von Callbacks enthält, die alle beim Auslösen dieses Events aufgerufen werden. Ein Callback ist quasi ein klassischer Functor, kann also wie man will auf alle beliebigen Funktionen zeigen (vielleicht sogar virtuelle, aber da bin ich mir nicht sicher <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>Jetzt gibt es &quot;nur&quot; drei Probleme:<br />
1. Für verschiedene Anzahlen von Parametern müsste ich ja viele verschiedene Event- und Notifierklassen entwerfen, also z.B. Notifier1&lt;result&gt;, Notifier2&lt;result, arg1&gt;, Notifier&lt;result, arg1, arg2&gt; usw.<br />
Gibt es irgendeine Möglichkeit, das zu umgehen und trotzdem die C++ Typsicherheit zu erhalten? Oder kann ich die vielen Klassen (muss ja schon bis 20 oder so gehen) per Makro erzeugen lassen, da der Präprozessor keine Schleifen usw. kennt, dürfte es aber auch dann schwer werden, die ganzen Parameter in die Ausgabedatei des PP schreiben zu lassen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>2. Muss Event überhaupt ein Template sein oder könnte ich auch einfach eine Hauptklasse für alle Functors machen und die in den Vector in Event reinspeichern? Dann hätte ich aber auch keine Typsicherheit mehr, die sicherstellt, dass nur passende Notifier für das Event registriert werden, oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>3. Wie könnte ich sowas wie bei libsigc++ durch sigc::bind erreichen, also dass man eine Funktion mit z.B. 3 int Parametern als ein Functor mit 2 int Parametern speichert, aber den letzten int Parameter fest vorgibt (z.B. um bei Callback immer eine bestimmte ID zu haben)?<br />
Ich hab in libsigc++ nachgeschaut, aber ich komm nicht dahinter, wie das dort realisiert wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>ChrisM</p>
<p>[ Dieser Beitrag wurde am 21.06.2003 um 16:37 Uhr von <strong>ChrisM</strong> editiert. ]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/36758/functorprobleme</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 23:06:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/36758.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Jun 2003 14:37:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 14:37:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bin gerade dabei, ein Functortemplate bei mir zu implementieren. Dazu will ich zwei Templateklassen verwenden, nämlich Event und Callback. Ein Event ist dabei eine Templateklasse, die einen vector von Callbacks enthält, die alle beim Auslösen dieses Events aufgerufen werden. Ein Callback ist quasi ein klassischer Functor, kann also wie man will auf alle beliebigen Funktionen zeigen (vielleicht sogar virtuelle, aber da bin ich mir nicht sicher <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>Jetzt gibt es &quot;nur&quot; drei Probleme:<br />
1. Für verschiedene Anzahlen von Parametern müsste ich ja viele verschiedene Event- und Notifierklassen entwerfen, also z.B. Notifier1&lt;result&gt;, Notifier2&lt;result, arg1&gt;, Notifier&lt;result, arg1, arg2&gt; usw.<br />
Gibt es irgendeine Möglichkeit, das zu umgehen und trotzdem die C++ Typsicherheit zu erhalten? Oder kann ich die vielen Klassen (muss ja schon bis 20 oder so gehen) per Makro erzeugen lassen, da der Präprozessor keine Schleifen usw. kennt, dürfte es aber auch dann schwer werden, die ganzen Parameter in die Ausgabedatei des PP schreiben zu lassen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>2. Muss Event überhaupt ein Template sein oder könnte ich auch einfach eine Hauptklasse für alle Functors machen und die in den Vector in Event reinspeichern? Dann hätte ich aber auch keine Typsicherheit mehr, die sicherstellt, dass nur passende Notifier für das Event registriert werden, oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>3. Wie könnte ich sowas wie bei libsigc++ durch sigc::bind erreichen, also dass man eine Funktion mit z.B. 3 int Parametern als ein Functor mit 2 int Parametern speichert, aber den letzten int Parameter fest vorgibt (z.B. um bei Callback immer eine bestimmte ID zu haben)?<br />
Ich hab in libsigc++ nachgeschaut, aber ich komm nicht dahinter, wie das dort realisiert wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>ChrisM</p>
<p>[ Dieser Beitrag wurde am 21.06.2003 um 16:37 Uhr von <strong>ChrisM</strong> editiert. ]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268352</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sat, 21 Jun 2003 14:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 14:43:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann nur etwas zu 1 sagen und zwar glaube ich nicht, daß Templates eine variable Anzahl an Parametern dulden. Ich hab eine kl. Menge an Functor-Klassen mal so implementiert:</p>
<p>Functor&lt;T&gt; &lt;- T: Typ des Objekts, auf dem ein Methodenaufruf erfolgen soll<br />
Functor1P&lt;T, P1&gt; &lt;- T: s.o. P1: Typ Parameter1 der Methode<br />
... bis P4<br />
FunctorR&lt;T, R&gt; &lt;- T: s.o. R: Typ Return-Wert der Methode</p>
<p>Functor1PR&lt;T, P1, R&gt;... Functor4PR&lt;T, P1, P2, P3, P4, R&gt;</p>
<p>war ziemlich viel Schreibkram und ist auch recht unelegant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268353</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 21 Jun 2003 14:43:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 14:52:00 GMT]]></title><description><![CDATA[<p>Sowas hab ich schon befürchtet, das heißt dann für mich 20 Klassen für maximal 20 Argumente, wenn Rückgabewert immer dabei ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Und deine Konstruktoren haben dann immer 2 Parameter, d.h. man muss die Memberfunktion und die Klasse (this beim Aufruf) angeben? Was macht man dann, wenn man nur eine ganz normale Funktion als Callback einsetzen will? Reicht es, wenn man dann für die Klasse 0 übergibt?</p>
<p>ChrisM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268354</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sat, 21 Jun 2003 14:52:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 15:21:00 GMT]]></title><description><![CDATA[<p>klar vererbung. die notifier rufen immer methoden auf (auch virtuelle, wenn du magst) und beinhalten zeiger auf zielobjekt, zeiger auf methode und bis zu 3 parameter.<br />
also Notifier0 bis Notifier4.<br />
äh,<br />
template&lt;class O,class P0,class P1,class P2,class P3&gt;<br />
class Notifier4:public NotifierBase<br />
{<br />
...<br />
virtual void shoot()<br />
{<br />
target-&gt;func(p0,p1,p2,p3);//oder so<br />
}<br />
};<br />
und Zeiger auf NotifierBase gammeln im vector rum, den das event hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268355</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 21 Jun 2003 15:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 15:23:00 GMT]]></title><description><![CDATA[<p>Ne, das geht bei mir leider nicht, weil die Template-Klasse ja als Template-Parameter den Typ der Klasse verlangt; so kann man leider keine normale C-Funktion ausdrücken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/268356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268356</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 21 Jun 2003 15:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 15:29:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Original erstellt von ChrisM:<br />
**Was macht man dann, wenn man nur eine ganz normale Funktion als Callback einsetzen will? Reicht es, wenn man dann für die Klasse 0 übergibt?<br />
**</p>
</blockquote>
<p>dann frag ich mich erstmal nach dem desingfehler.</p>
<p>kannst zur nor noch ne notifier-klasse bauen, die globale funtionen isst.</p>
<p>die clients sehen von den notifier-klassen ja eh nix, sondern rufen ja bei den wächtern methoden auf um sich zu registrieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268357</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 21 Jun 2003 15:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 15:51:00 GMT]]></title><description><![CDATA[<blockquote>
<p>kannst zur nor noch ne notifier-klasse bauen, die globale funtionen isst.</p>
</blockquote>
<p>Das verdoppelt nochmal die Anzahl der Notifierklassen. <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>
<blockquote>
<p>die clients sehen von den notifier-klassen ja eh nix, sondern rufen ja bei den wächtern methoden auf um sich zu registrieren.</p>
</blockquote>
<p>Wie meinst du das? Ich denk, die Notifiertemplates werden direkt vom User instantiiert?</p>
<p>ChrisM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268358</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sat, 21 Jun 2003 15:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 15:55:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Original erstellt von ChrisM:<br />
Wie meinst du das? Ich denk, die Notifiertemplates werden direkt vom User instantiiert?</p>
</blockquote>
<p>ich mein, daß die nur aufrufen blaevent.addWatcher(this,&amp;Fasel::onMouse); und addWatcher ist ne template-methode, die schon alles richtug regeln wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268359</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 21 Jun 2003 15:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 16:02:00 GMT]]></title><description><![CDATA[<p>Achso, du meinst, AddWatcher() wird dann für jeden Notifier einmal überladen, also z.B.</p>
<pre><code>template&lt;class Klasse, class Return&gt;
AddWatcher(Klasse, (Return)*(void));

template&lt;class Klasse, class Return, class Param1, class Param2&gt;
AddWatcher(Klasse, (Return)*(Param1, Param));
</code></pre>
<p>Seh ich das so richtig?</p>
<p>ChrisM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268360</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sat, 21 Jun 2003 16:02:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 16:06:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Original erstellt von ChrisM:<br />
**template&lt;class Klasse, class Return, class Param1, class Param2&gt;<br />
AddWatcher(Klasse, (Return)*(Param1, Param));[/code]<br />
Seh ich das so richtig?<br />
**</p>
</blockquote>
<p>ja, aber eher noch</p>
<pre><code>template&lt;class Klasse, class Return, class Param1, class Param2&gt;
AddWatcher(Klasse, (Return)*(Param1, Param),Param1,Param2);
</code></pre>
<p>ob das das beste für dich ist, weiß ich nicht, aber ich hab sowas mal gemacht.<br />
und die 20 parameter kannste dir abscmingen. bau mal drei, und vermutlich reicht das. bau 4 erst, wenn du auch wirklich mal 4 parameter brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268361</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 21 Jun 2003 16:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 16:15:00 GMT]]></title><description><![CDATA[<p>Danke erstmal, dass ihr überhaupt was postet <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>Warum gibst du bei AddWatcher nochmal Werte für die Parameter an? Der Zeiger und this für Memberfunktionen müssten doch reichen, oder?</p>
<p>Wenn mir dann noch jemand bei Frage 2 und 3 helfen könnte... <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>ChrisM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268362</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sat, 21 Jun 2003 16:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 16:22:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Original erstellt von ChrisM:<br />
<strong>Warum gibst du bei AddWatcher nochmal Werte für die Parameter an? Der Zeiger und this für Memberfunktionen müssten doch reichen, oder?<br />
ChrisM</strong></p>
</blockquote>
<p>tja, ich dachte, du wolltest sagen können &quot;wenn da ne mousemessage anliegt, dann ruf bitte &quot;this-&gt;onMouse(&quot;imagemap1&quot;,23)&quot; auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268363</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 21 Jun 2003 16:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sat, 21 Jun 2003 16:30:00 GMT]]></title><description><![CDATA[<p>Nein, das ist ja meine Frage 3 <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>Ich hab mir das so vorgestellt:<br />
Meine Mausklasse (um bei deinem Beispiel zu bleiben) hat ein Event als Member für das Klick-Ereignis. Nun speichert dieser Event normalerweise Funktionen mit 3 Ints (Koordinaten + Maustaste). Jetzt kommt aber ein Benutzer und initialisiert die Mausklasse 2 mal, er will aber nur eine Callbackfunktion benutzen. Also gibt er der Callbackfunktion als 4. Parameter noch einen int. Beim Erstellen der Notifiers wird dieser 4. Parameter vom Benutzer auf die ID der Maus festgelegt, also bei der einen Mausinstanz auf 1, bei der anderen auf 2. Trotzdem kann dieser Notifier im Event gespeichert werden, da er als Notifier mit 3 Parametern und nicht als einer mit 4 zählt!</p>
<p>Geht das irgendwie? (in libsigc++ gehts wie gesagt mit sig::bind)</p>
<p>ChrisM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268364</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sat, 21 Jun 2003 16:30:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Sun, 22 Jun 2003 08:45:00 GMT]]></title><description><![CDATA[<p>*push*</p>
<p>ChrisM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268365</guid><dc:creator><![CDATA[ChrisM]]></dc:creator><pubDate>Sun, 22 Jun 2003 08:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Fri, 14 Jun 2013 17:28:11 GMT]]></title><description><![CDATA[<p>Bei solcher Callback-Problematik gibt meist eine Totschlag-Technik:<br />
Man definiere eine Klasse...<br />
1. Als Interface, d.h. Sie besitzt eine rein virtuelle Funktion z.B. &quot;Execute()&quot;</p>
<p>2. Wird die Klasse als Klassen-Template angelegt, kann der Rückgabewert vom Typ &lt;typename ...&gt; sein</p>
<p>3. Alle Parameter, die die Callback-Funktion ausführen soll, werden als Member gespeichert. Das erfordert allerdings entweder eine Ableitung, oder es wird eine Datenstruktur gespeichert (als void-Zeiger, oder durch Template-Technik während der Instantiierung).</p>
<p>Wenn das Event aufgerufen wird, muß diesem nur ein Parameter &quot;TCallBack* CallMe&quot; übergeben werden, egal welche Ableitung davon nun *wirklich* übergeben wurde.</p>
<pre><code>class TCallback{
    void* Returned;
    void* Data;
    vitural void Execute(void)=0; // rein virtuell - das zwingt zum Überschreiben.
};

// Alternativ:

template &lt;typename D, typename R&gt; class TCallBack{
    R* Returned;
    D* Data;
    virtual void Execute(void) =0;
};

// Implementierungs-Beispiel:

class TMausCallBack : public TCallBack{
    // Der Konstruktor *kann* Parameter vorbelegen
    TMausCallBack(int&amp; Param1, std:String&amp; Param2, SomeClass* Param2){
        _param1=Param1;
        _param2=Param2;
        if(Param3)_param3=Param3; else _param3 = new SomeClass();  // Veranschalichte Plausibilitätsprüfung
    }

    virtual void Execute(){
        //Hier finden unglaublich komplexe Berechnungen statt ...
        Returning = 42;
    }

    int _param1;
protected:
    std::String _param2;
    SomeClass* _param3;

         // Es muß nicht der gesamte Algorythmus in Execute liegen
         // Es kann eine Lambdafunktion oder statische Funktion sein...
    int Helfer(std::String&amp; str);
};

//Anwendung:

...
int THandler::DoHandle(int x, TCallBack* CallMe){
    if(CallMe){
        CallMe-&gt;Data+=x;     //Weise irgentwelche Parameter zu, erzeuge Daten...
        CallMe-&gt;Execute();
        return &amp;((int*)CallMe-&gt;Returned);
    }
    return 0;     
}
</code></pre>
<p>Dieser Ansatz erfordert natürlich, daß im ausführenden Code eine bestimmte Ableitung erwartet wird ... ist also nicht wirklich generisch - sondern nur das, was man vor 20 Jahren darunter verstanden 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="😉"
    /><br />
Ich weiß, das ist eher eine Fleischhammer-Technik, aber Du willst es Dir ja auch nicht zu leicht machen!</p>
<p>Außerdem könnte Dir da Boost vielleicht weiterhelfen:<br />
Schau' Dir doch mal Boost::function und Boost::Signals an, vielleicht könntest Du daraus ja etwas machen...<br />
<a href="http://www.highscore.de/cpp/boost/ereignisbehandlung.html" rel="nofollow">http://www.highscore.de/cpp/boost/ereignisbehandlung.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331218</guid><dc:creator><![CDATA[BinärWichtel]]></dc:creator><pubDate>Fri, 14 Jun 2013 17:28:11 GMT</pubDate></item><item><title><![CDATA[Reply to Functorprobleme on Fri, 14 Jun 2013 17:39:56 GMT]]></title><description><![CDATA[<p>Gleich im Voraus: BinärWichtel ist ein Semi-Troll, dieser Thread ist von 2003. Wird (wahrscheinlich) gleich gesperrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331221</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 14 Jun 2013 17:39:56 GMT</pubDate></item></channel></rss>