<?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[[gelöst] C++0x: std::bind-Ergebnis an std::function binden?]]></title><description><![CDATA[<p>Hallo zusammen, ich hab grade ein etwas größeres Problem auf die folgenden Zeilen eingedampft:</p>
<pre><code class="language-cpp">#include &lt;functional&gt;
class ServerEvent;

struct Server
{
  typedef std::function&lt;void(ServerEvent const&amp;)&gt; Callback;
  Callback cb;

  Server(Callback const&amp; c)
    : cb(c)
  {}
};

struct EventHandler
{
  void handleEvent(ServerEvent const&amp;) {}
};

int main()
{
  EventHandler eh;
  Server s(std::bind(&amp;EventHandler::handleEvent, &amp;eh));
}
</code></pre>
<p>Das wäre jetzt so mein naiver Ansatz gewesen, dem Server seinen Callback mitzugeben. Sollte sich auch von selbst erklären, was gewollt ist. Nur spuckt mir MSVC2010 jetzt sein Template-Getriebe entgegen:</p>
<pre><code>..\include\xxresult(28): error C2825: '_Fty': must be a class or namespace when followed by '::'
[...see reference usw...]
[... Folgefehler...]
..\include\xxbind0(12): error C2091: function returns function
..\include\xxbind0(27): error C2091: function returns function
</code></pre>
<p>Wie mach ichs richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/291951/gelöst-c-0x-std-bind-ergebnis-an-std-function-binden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 08:28:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/291951.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Aug 2011 18:04:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Wed, 31 Aug 2011 05:27:36 GMT]]></title><description><![CDATA[<p>Hallo zusammen, ich hab grade ein etwas größeres Problem auf die folgenden Zeilen eingedampft:</p>
<pre><code class="language-cpp">#include &lt;functional&gt;
class ServerEvent;

struct Server
{
  typedef std::function&lt;void(ServerEvent const&amp;)&gt; Callback;
  Callback cb;

  Server(Callback const&amp; c)
    : cb(c)
  {}
};

struct EventHandler
{
  void handleEvent(ServerEvent const&amp;) {}
};

int main()
{
  EventHandler eh;
  Server s(std::bind(&amp;EventHandler::handleEvent, &amp;eh));
}
</code></pre>
<p>Das wäre jetzt so mein naiver Ansatz gewesen, dem Server seinen Callback mitzugeben. Sollte sich auch von selbst erklären, was gewollt ist. Nur spuckt mir MSVC2010 jetzt sein Template-Getriebe entgegen:</p>
<pre><code>..\include\xxresult(28): error C2825: '_Fty': must be a class or namespace when followed by '::'
[...see reference usw...]
[... Folgefehler...]
..\include\xxbind0(12): error C2091: function returns function
..\include\xxbind0(27): error C2091: function returns function
</code></pre>
<p>Wie mach ichs richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112635</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 31 Aug 2011 05:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Tue, 30 Aug 2011 18:08:36 GMT]]></title><description><![CDATA[<p>Da fehlt _1. Müsste so heißen:</p>
<pre><code class="language-cpp">std::bind(&amp;EventHandler::handleEvent, &amp;eh, std::placeholders::_1)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2112638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112638</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 30 Aug 2011 18:08:36 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Tue, 30 Aug 2011 18:27:14 GMT]]></title><description><![CDATA[<p>danke dir!<br />
habs grade per Lambda geregelt</p>
<pre><code class="language-cpp">Foo::Foo()
#pragma warning(disable: 4355)
  : eventHandler(new EventHandler())
  , serverPtr(new Server([this](ServerEvent const&amp; e){eventHandler-&gt;handleEvent(e);}))
#pragma warning(default: 4355)
  /* ... */
{}
</code></pre>
<p>Ich liebe Lambdas... wirklich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112641</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 30 Aug 2011 18:27:14 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Tue, 30 Aug 2011 18:30:02 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112644</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 30 Aug 2011 18:30:02 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Tue, 30 Aug 2011 18:54:30 GMT]]></title><description><![CDATA[<p>Wie hoch gehen die Placeholders?<br />
Kanns leider nicht testen, geht das auch:</p>
<p>std::placeholders::_20</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112649</guid><dc:creator><![CDATA[_32231]]></dc:creator><pubDate>Tue, 30 Aug 2011 18:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Tue, 30 Aug 2011 19:02:17 GMT]]></title><description><![CDATA[<p>Das ist implementierungsspezifisch. Bei boost gehts bis 9:<br />
<a href="http://www.boost.org/doc/libs/1_47_0/boost/bind/placeholders.hpp" rel="nofollow">http://www.boost.org/doc/libs/1_47_0/boost/bind/placeholders.hpp</a></p>
<p>Bei meiner Visual Studio 2010 Version bis 10.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112650</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 30 Aug 2011 19:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] C++0x: std::bind-Ergebnis an std::function binden? on Tue, 30 Aug 2011 22:53:24 GMT]]></title><description><![CDATA[<p>Nur schade, dass es da einen Dinkumware-Library Bug gibt, bei dem Rvalue-Referenzen nicht mit std::function&lt;&gt; funktionieren. <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112685</guid><dc:creator><![CDATA[Jodocus]]></dc:creator><pubDate>Tue, 30 Aug 2011 22:53:24 GMT</pubDate></item></channel></rss>