<?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[Thread an Memberfunktion binden]]></title><description><![CDATA[<p>Ich dreh noch durch mit den Bindern. Die von der STL sind mir irgendwie schon zu hoch und man braucht sie irgendwie fast nie. Wenn ich mir da boost anschaue versteh ich gar nix mehr.</p>
<p>Mein Problem:</p>
<pre><code class="language-cpp">std::mem_fun(&amp;Socket::read)(this); // (zum Test) das geht

/* Nun möchte ich das this an das Funktionsobjekt binden */
thread = new boost::thread( std::bind1st( std::mem_fun(&amp;Socket::read), this ) ); // geht nicht
</code></pre>
<p>edit: Ist das eigentlich irgendein Gesetz dass man es immer da hinbekommt wenn man gerade gefragt hat? Klappt nun mit Boost, gehts auch mit der STL (also der Bind, der Thread ist klar)?</p>
<pre><code class="language-cpp">thread = new boost::thread( boost::bind( std::mem_fun(&amp;Socket::read), this ) );
</code></pre>
<p>Vielen Dank für die Hilfe<br />
Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/122857/thread-an-memberfunktion-binden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 09:37:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/122857.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Oct 2005 18:42:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread an Memberfunktion binden on Mon, 10 Oct 2005 18:45:13 GMT]]></title><description><![CDATA[<p>Ich dreh noch durch mit den Bindern. Die von der STL sind mir irgendwie schon zu hoch und man braucht sie irgendwie fast nie. Wenn ich mir da boost anschaue versteh ich gar nix mehr.</p>
<p>Mein Problem:</p>
<pre><code class="language-cpp">std::mem_fun(&amp;Socket::read)(this); // (zum Test) das geht

/* Nun möchte ich das this an das Funktionsobjekt binden */
thread = new boost::thread( std::bind1st( std::mem_fun(&amp;Socket::read), this ) ); // geht nicht
</code></pre>
<p>edit: Ist das eigentlich irgendein Gesetz dass man es immer da hinbekommt wenn man gerade gefragt hat? Klappt nun mit Boost, gehts auch mit der STL (also der Bind, der Thread ist klar)?</p>
<pre><code class="language-cpp">thread = new boost::thread( boost::bind( std::mem_fun(&amp;Socket::read), this ) );
</code></pre>
<p>Vielen Dank für die Hilfe<br />
Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889105</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Mon, 10 Oct 2005 18:45:13 GMT</pubDate></item><item><title><![CDATA[Reply to Thread an Memberfunktion binden on Tue, 11 Oct 2005 06:32:56 GMT]]></title><description><![CDATA[<p>Für die Binder der STL gibt's nen Defect Report. Die Dinger formen ganz schnell mal Referenzen auf Referenzen, was dann zu komischen Fehlermeldungen führt an denen man verzweifelt <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="😉"
    /> Mit C++0x gibt's da wohl eine Verbesserung.</p>
<p>Eine vorgeschlagene Lösung von Stroustrup war übrigens, Referenzen auf Referenzen einfach wie normale Referenzen zu behandeln. Ein Redesign der STL-Binder gibt's aber sowieso, da sie noch einen anderen Fehler haben (Pointer-Typen können an andere Pointer-Typen gebunden werden, obwohl sie nicht kompatibel sind).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889305</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Tue, 11 Oct 2005 06:32:56 GMT</pubDate></item><item><title><![CDATA[Reply to Thread an Memberfunktion binden on Tue, 11 Oct 2005 06:40:02 GMT]]></title><description><![CDATA[<p>Hm, damit läuft Read dann in einem eigenen Thread.<br />
Wie sieht die Methode aus ? Versuchst du damit permanent zu lesen ?<br />
Oder ist das Eventbasiert ?<br />
Wie bekommst du die Daten dann aus dem Thread ?</p>
<p>Nur so aus interesse <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/889310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889310</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Tue, 11 Oct 2005 06:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to Thread an Memberfunktion binden on Tue, 11 Oct 2005 15:30:51 GMT]]></title><description><![CDATA[<p>Ich habe einen Buffer als Stringstream implementiert. Die Methode fürs Socket lesen ruft recv() im normalen Blocking Mode auf. Wenn was gelesen wird dann wird falls gesetzt der Callback onRecive aufgerufen (mit boost::function&lt;void ()&gt;).</p>
<p>Ich schreib zum ersten mal eine kleine Socketlibrary für mein aktuelles Programm in der Hoffnung ich kann sie später nochmal zu verwenden.</p>
<p>Das mit der Referenz auf die Referenz ist ziemlich nervig hab ich jetzt schon mitbekommen <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>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889756</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Tue, 11 Oct 2005 15:30:51 GMT</pubDate></item></channel></rss>