<?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[C++11: Thread erstellen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in einer rekursiven Funktion einen Thread erstellen, damit verschiedene Fälle nebeneinander abgearbeitet werden können.<br />
Nun bekomme ich aber den Fehler, dass kein Konstruktor von Thread vorhanden ist, der dieser Argumentenliste übereinstimmt:</p>
<p>die Funktion:<br />
void loesen(int n, bitset&lt;100&gt; &amp;b, vector&lt;int&gt; &amp;vk, int s) {...}</p>
<p>der Fehler:<br />
t1 = thread(loesen,(s-2),bit1,vk,s);</p>
<p>t1 ist global deklariert.<br />
Habt ihr eine Idee, woran es liegen könnte?<br />
Die IDE zeigt mir auch an, dass es einen Konstruktor für Funktion + vier<br />
Argumenten gibt, aber der Compilier weigert sich trotzdem.</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310914/c-11-thread-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 04:54:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310914.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Nov 2012 17:29:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++11: Thread erstellen on Thu, 22 Nov 2012 17:29:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in einer rekursiven Funktion einen Thread erstellen, damit verschiedene Fälle nebeneinander abgearbeitet werden können.<br />
Nun bekomme ich aber den Fehler, dass kein Konstruktor von Thread vorhanden ist, der dieser Argumentenliste übereinstimmt:</p>
<p>die Funktion:<br />
void loesen(int n, bitset&lt;100&gt; &amp;b, vector&lt;int&gt; &amp;vk, int s) {...}</p>
<p>der Fehler:<br />
t1 = thread(loesen,(s-2),bit1,vk,s);</p>
<p>t1 ist global deklariert.<br />
Habt ihr eine Idee, woran es liegen könnte?<br />
Die IDE zeigt mir auch an, dass es einen Konstruktor für Funktion + vier<br />
Argumenten gibt, aber der Compilier weigert sich trotzdem.</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273514</guid><dc:creator><![CDATA[Schamote]]></dc:creator><pubDate>Thu, 22 Nov 2012 17:29:05 GMT</pubDate></item><item><title><![CDATA[Reply to C++11: Thread erstellen on Thu, 22 Nov 2012 18:11:32 GMT]]></title><description><![CDATA[<p>Solche Probleme behebt man am besten, in dem man ein <a href="http://www.c-plusplus.net/forum/304133" rel="nofollow">reduziertes compilierbares Beispiel</a> erzeugt. Entweder findet man den Fehler selbst raus, der man hat genau den richtigen Code um ihn hier zu zeigen.</p>
<p>Was mir auffällt:<br />
- Der Aufruf kann so gar nicht funktionieren, da <code>loesen</code> eine Referenz auf den Vektor und das bitset erwartet und du es per Value übergibst. Verwende da <code>std::ref</code><br />
- t1 global zu deklarieren kann nur schiefgehen, weil sobald t1 erneut zugewiesen wird, der alte Thread (der möglicherweise die Zuweisung macht) abgewürgt wird.</p>
<p>Möglicher Workaround:</p>
<pre><code class="language-cpp">void loesen(int n, std::bitset&lt;100&gt; b, std::vector&lt;int&gt; &amp;vk, int s) {...}

std::thread t(loesen,(s-2), std::ref(bit1),std::ref(vk),s);

// später:
t.join();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273524</guid><dc:creator><![CDATA[rtfgnasdha]]></dc:creator><pubDate>Thu, 22 Nov 2012 18:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++11: Thread erstellen on Fri, 23 Nov 2012 16:54:07 GMT]]></title><description><![CDATA[<p>Okay, den Fehler habe ich gefunden.<br />
Der Tipp des Zusammenschneiden des Codes war sehr hilfreich, kannte die Methode noch nicht.</p>
<p>Ich hatte die Funktion noch in einer Klasse als friend deklariert, aber dort mit anderen Parametern, als ich noch rumprobiert habe. Das hat wohl verwirrt.</p>
<p>also:<br />
Danke!! <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/2273936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273936</guid><dc:creator><![CDATA[Schamote]]></dc:creator><pubDate>Fri, 23 Nov 2012 16:54:07 GMT</pubDate></item></channel></rss>