<?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[Referenzen und bind]]></title><description><![CDATA[<p>Folgender Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/thread/thread.hpp&gt;
#include &lt;boost/bind.hpp&gt;

void asd(std::string &amp;Text1,std::string &amp;Text2)
{
    Text1 = &quot;2&quot;;
    Text2 = &quot;2&quot;;
}

int main(int argc, char *argv[])
{
    std::string Text1(&quot;1&quot;);
    std::string Text2(&quot;1&quot;);
    boost::thread bla(boost::bind(asd, Text1, Text2));
    bla.join();
    std::cout &lt;&lt; Text1 &lt;&lt; Text2 &lt;&lt; std::endl;
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>gibt 11 aus, obwohl er eigentlich 22 ausgeben sollte. Wenn ich statt Referenzen Zeiger nehmen, klappt's. Ich vermute, dass bei der Übergabe an bind, der Kopierkonstruktor von std::string aufgerufen wird. Ist es irgentwie möglich das auch mit Referenzen zu lösen?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/131098/referenzen-und-bind</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 00:24:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131098.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Dec 2005 21:57:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenzen und bind on Fri, 30 Dec 2005 21:57:09 GMT]]></title><description><![CDATA[<p>Folgender Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/thread/thread.hpp&gt;
#include &lt;boost/bind.hpp&gt;

void asd(std::string &amp;Text1,std::string &amp;Text2)
{
    Text1 = &quot;2&quot;;
    Text2 = &quot;2&quot;;
}

int main(int argc, char *argv[])
{
    std::string Text1(&quot;1&quot;);
    std::string Text2(&quot;1&quot;);
    boost::thread bla(boost::bind(asd, Text1, Text2));
    bla.join();
    std::cout &lt;&lt; Text1 &lt;&lt; Text2 &lt;&lt; std::endl;
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>gibt 11 aus, obwohl er eigentlich 22 ausgeben sollte. Wenn ich statt Referenzen Zeiger nehmen, klappt's. Ich vermute, dass bei der Übergabe an bind, der Kopierkonstruktor von std::string aufgerufen wird. Ist es irgentwie möglich das auch mit Referenzen zu lösen?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953145</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 30 Dec 2005 21:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen und bind on Fri, 30 Dec 2005 23:18:13 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">boost::thread bla( boost::bind(asd, boost::ref(Text1), boost::ref(Text2)) );
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953196</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 30 Dec 2005 23:18:13 GMT</pubDate></item></channel></rss>