<?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[template funktion als thread aufrufen (boost::thread)]]></title><description><![CDATA[<p>Hallo,<br />
ich wieder einmal eine Frage zum Thema boost::thread. Ich rufe eine Pythonmethode von einer C++-Klasse aus auf und würde diesen Aufruf gerne als Thread laufen lassen. Normal würde ich es wie folgt machen.</p>
<pre><code class="language-cpp">boost::thread thrd(boost::bind(&amp;call_method&lt;void&gt;, this-&gt;self, &quot;performEvent&quot;, str(&quot;jo !!!!&quot;)));
</code></pre>
<p>Leider sagt mir der Compiler, dass er den Rückgabewert der Funktion <strong>call_method</strong> nicht kennt.</p>
<pre><code>error: no matching function for call to `bind(&lt;unknown type&gt;, PyObject*&amp;, const char[13], boost::python::str)'
</code></pre>
<p>Kann mir jemand weiter helfen? danke schon mal im voraus.</p>
<p>gruß<br />
tyr377</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178596/template-funktion-als-thread-aufrufen-boost-thread</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 23:57:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178596.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Apr 2007 13:45:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 13:45:41 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich wieder einmal eine Frage zum Thema boost::thread. Ich rufe eine Pythonmethode von einer C++-Klasse aus auf und würde diesen Aufruf gerne als Thread laufen lassen. Normal würde ich es wie folgt machen.</p>
<pre><code class="language-cpp">boost::thread thrd(boost::bind(&amp;call_method&lt;void&gt;, this-&gt;self, &quot;performEvent&quot;, str(&quot;jo !!!!&quot;)));
</code></pre>
<p>Leider sagt mir der Compiler, dass er den Rückgabewert der Funktion <strong>call_method</strong> nicht kennt.</p>
<pre><code>error: no matching function for call to `bind(&lt;unknown type&gt;, PyObject*&amp;, const char[13], boost::python::str)'
</code></pre>
<p>Kann mir jemand weiter helfen? danke schon mal im voraus.</p>
<p>gruß<br />
tyr377</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264688</guid><dc:creator><![CDATA[tyr377]]></dc:creator><pubDate>Thu, 12 Apr 2007 13:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 13:49:20 GMT]]></title><description><![CDATA[<p>wie ist denn call_method definiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264691</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 12 Apr 2007 13:49:20 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 13:54:53 GMT]]></title><description><![CDATA[<p>ja, in boost::python. Der Aufruf an sich funktioniert aus und sieht wie folgt aus.</p>
<pre><code class="language-cpp">call_method&lt;void&gt;(this-&gt;self, &quot;performEvent&quot;, str(&quot;jo !!!!&quot;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1264697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264697</guid><dc:creator><![CDATA[tyr377]]></dc:creator><pubDate>Thu, 12 Apr 2007 13:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 13:59:22 GMT]]></title><description><![CDATA[<p>oh, ich habe wohl schon Tomaten auf den Augen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Aber ich denke du kannst die Info entnehmen. <strong>call_method</strong> ist ne boost::python-funktion.<br />
gruß<br />
tyr377</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264700</guid><dc:creator><![CDATA[tyr377]]></dc:creator><pubDate>Thu, 12 Apr 2007 13:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 14:05:56 GMT]]></title><description><![CDATA[<p>Ja, dann kann der Compiler das auch nicht.<br />
Da hilft i.A. casten. Etwa so was</p>
<pre><code class="language-cpp">boost::bind( (void (*)( PyObject*, const char*, boost::python::str ))&amp;call_method&lt;void&gt;, this-&gt;self, &quot;performEvent&quot;, str(&quot;jo !!!!&quot;))
</code></pre>
<p>ich unterstelle mal, der Returntyp ist void; bitte prüfe noch mal die anderen Parameter. Aber dann sollte es gehen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264711</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 12 Apr 2007 14:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 14:43:07 GMT]]></title><description><![CDATA[<p>Rückgabewert ist void, das hast du völlig recht. Aber leider macht der g++ es immer noch nicht.</p>
<pre><code>error: no matches converting function `call_method' to type `void (*)(struct PyObject*, const char*, class boost::python::str)'
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1264738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264738</guid><dc:creator><![CDATA[tyr377]]></dc:creator><pubDate>Thu, 12 Apr 2007 14:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 14:53:48 GMT]]></title><description><![CDATA[<p>Dann gib mal alle Template-Parameter an. Also</p>
<pre><code class="language-cpp">boost::bind( (void (*)( PyObject*, const char*, const boost::python::str&amp; ))&amp;call_method&lt;void, boost::phthon::str &gt;
    , this-&gt;self, &quot;performEvent&quot;, str(&quot;jo !!!!&quot;))

// in der Hilfe steht:
template &lt;class R, class A1, class A2, ... class An&gt;
R call_method(PyObject* self, char const* method, A1 const&amp;, A2 const&amp;, ... An const&amp;)
</code></pre>
<p>.. eigentlich solltest Du den cast dann auch weglassen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> .<br />
Das Problem ist hier, dass man nicht genau weiß wie dieses method_call&lt;&gt; definiert ist.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264746</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 12 Apr 2007 14:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 15:11:20 GMT]]></title><description><![CDATA[<p>Tja, selbe Antwort vom g++ wie vorher auch. Habe dann auch mal den cast weg genommen und dann sagt er wieder 'unknown type'. <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="😞"
    /> Einfach kann halt jeder. <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/1264759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264759</guid><dc:creator><![CDATA[tyr377]]></dc:creator><pubDate>Thu, 12 Apr 2007 15:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 15:18:52 GMT]]></title><description><![CDATA[<p>Als völlig unwissender (sowohl was Python als auch boost::python angeht) in den Raum geworfen:<br />
Evtl. &amp;boost::python::call_method?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264766</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 12 Apr 2007 15:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to template funktion als thread aufrufen (boost::thread) on Thu, 12 Apr 2007 15:25:45 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Als völlig unwissender (sowohl was Python als auch boost::python angeht) in den Raum geworfen:<br />
Evtl. &amp;boost::python::call_method?</p>
</blockquote>
<p>Das war auch eine meiner ersten Vermutungen aber leider nein. Es macht keinen Unterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264768</guid><dc:creator><![CDATA[tyr377]]></dc:creator><pubDate>Thu, 12 Apr 2007 15:25:45 GMT</pubDate></item></channel></rss>