<?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[Was mache ich falshc bei lambdas?]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender code kompiliert nicht (MSVC++2010):</p>
<pre><code>BOOST_FOREACH(const auto i, gate.ipc)
{
if(std::find_if(outputs.cbegin(),outputs.cend(),[i.first](const std::string &amp;str) { return str== i.first; }) != outputs.cend())
{
// mach was 
}
}
</code></pre>
<p>Der folgende kompiliert, warum muss ich ich den member first von i erst x zuweisen, damit es kompiliert?</p>
<pre><code>BOOST_FOREACH(const auto i, gate.ipc)
{

auto x = i.first;
if(std::find_if(outputs.cbegin(),outputs.cend(),[&amp;x](const std::string &amp;str) { return str== x; }) != outputs.cend())
{
// mach was 
}
}
</code></pre>
<p>Die Fehler die ich bekomme sind:</p>
<pre><code>&gt;main.cpp(126): error C2143: syntax error : missing ']' before '.'
1&gt;main.cpp(126): error C2059: syntax error : ']'
1&gt;main.cpp(126): error C2059: syntax error : '.'
1&gt;main.cpp(126): error C2143: syntax error : missing ';' before '{'
1&gt;main.cpp(126): error C2065: 'str' : undeclared identifier
1&gt;main.cpp(126): error C2059: syntax error : ')'
</code></pre>
<p>Und noch viel mehr</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321510/was-mache-ich-falshc-bei-lambdas</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 00:05:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321510.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Nov 2013 08:53:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was mache ich falshc bei lambdas? on Thu, 14 Nov 2013 08:53:35 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender code kompiliert nicht (MSVC++2010):</p>
<pre><code>BOOST_FOREACH(const auto i, gate.ipc)
{
if(std::find_if(outputs.cbegin(),outputs.cend(),[i.first](const std::string &amp;str) { return str== i.first; }) != outputs.cend())
{
// mach was 
}
}
</code></pre>
<p>Der folgende kompiliert, warum muss ich ich den member first von i erst x zuweisen, damit es kompiliert?</p>
<pre><code>BOOST_FOREACH(const auto i, gate.ipc)
{

auto x = i.first;
if(std::find_if(outputs.cbegin(),outputs.cend(),[&amp;x](const std::string &amp;str) { return str== x; }) != outputs.cend())
{
// mach was 
}
}
</code></pre>
<p>Die Fehler die ich bekomme sind:</p>
<pre><code>&gt;main.cpp(126): error C2143: syntax error : missing ']' before '.'
1&gt;main.cpp(126): error C2059: syntax error : ']'
1&gt;main.cpp(126): error C2059: syntax error : '.'
1&gt;main.cpp(126): error C2143: syntax error : missing ';' before '{'
1&gt;main.cpp(126): error C2065: 'str' : undeclared identifier
1&gt;main.cpp(126): error C2059: syntax error : ')'
</code></pre>
<p>Und noch viel mehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2365420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2365420</guid><dc:creator><![CDATA[MokuYobi]]></dc:creator><pubDate>Thu, 14 Nov 2013 08:53:35 GMT</pubDate></item><item><title><![CDATA[Reply to Was mache ich falshc bei lambdas? on Thu, 14 Nov 2013 09:07:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">[i.first](const std::string &amp;str) { return str== i.first; }) != outputs.cend()
</code></pre>
<p>Das machst du falsch. Lambdas werden wie normale Funktionen durch } abgeschlossen. Was soll der Rest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2365421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2365421</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 14 Nov 2013 09:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Was mache ich falshc bei lambdas? on Thu, 14 Nov 2013 09:18:05 GMT]]></title><description><![CDATA[<p><code>i.first</code> ist keine Variable, die Du &quot;capturen&quot; kannst. Warum nimmst Du nicht das ganze <code>i</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2365424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2365424</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 14 Nov 2013 09:18:05 GMT</pubDate></item><item><title><![CDATA[Reply to Was mache ich falshc bei lambdas? on Thu, 14 Nov 2013 09:36:19 GMT]]></title><description><![CDATA[<p>Furble Wurble schrieb:</p>
<blockquote>
<p><code>i.first</code> ist keine Variable, die Du &quot;capturen&quot; kannst. Warum nimmst Du nicht das ganze <code>i</code> ?</p>
</blockquote>
<p>Danke, das war der Fehler! <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="🙂"
    /> Aber wieso kann ich das i.first nicht &quot;capturen&quot; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2365428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2365428</guid><dc:creator><![CDATA[MokuYobi]]></dc:creator><pubDate>Thu, 14 Nov 2013 09:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Was mache ich falshc bei lambdas? on Thu, 14 Nov 2013 09:59:54 GMT]]></title><description><![CDATA[<p>MokuYobi schrieb:</p>
<blockquote>
<p>Furble Wurble schrieb:</p>
<blockquote>
<p><code>i.first</code> ist keine Variable, die Du &quot;capturen&quot; kannst. Warum nimmst Du nicht das ganze <code>i</code> ?</p>
</blockquote>
<p>Danke, das war der Fehler! <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="🙂"
    /> Aber wieso kann ich das i.first nicht &quot;capturen&quot; ?</p>
</blockquote>
<p><code>i.first</code> ist a) keine Variable und wird b) nicht im Scope des Lambda deklariert.<br />
<code>i</code> schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2365433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2365433</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 14 Nov 2013 09:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Was mache ich falshc bei lambdas? on Thu, 14 Nov 2013 10:10:39 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber wieso kann ich das i.first nicht &quot;capturen&quot; ?</p>
</blockquote>
<p>Es ist ein Subobjekt. Du kannst nur komplette Objekte capturen.</p>
<blockquote>
<p>b) nicht im Scope des Lambda deklariert.</p>
</blockquote>
<p>Das Argument ist fast richtig:</p>
<blockquote>
<p>If a <em>lambda-expression</em> captures an entity and that entity is not <strong>defined</strong> [...] in the immediately enclosing [...] function, the program is ill-formed.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2365435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2365435</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 14 Nov 2013 10:10:39 GMT</pubDate></item></channel></rss>