<?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[boost::signals mit verschiedenen parametern aufrufen]]></title><description><![CDATA[<p>folgender code:</p>
<pre><code class="language-cpp">float product(float x, float y) { return x*y; }
float quotient(float x, float y) { return x/y; }
float sum(float x, float y) { return x+y; }
float difference(float x, float y) { return x-y; }

boost::signal&lt;float (float x, float y)&gt; sig;

sig.connect(&amp;product);
sig.connect(&amp;quotient);
sig.connect(&amp;sum);
sig.connect(&amp;difference);

std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl; // Hier möchte ich in einer Schleife jeden Slot durchgehen und ihn mit verschiedenen Parametern aufrufen.
</code></pre>
<p>Geht das ? Wenn ja, wie ? Wenn nein, ist doch kake <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="=/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278006/boost-signals-mit-verschiedenen-parametern-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 15:31:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278006.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Nov 2010 11:21:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 11:21:25 GMT]]></title><description><![CDATA[<p>folgender code:</p>
<pre><code class="language-cpp">float product(float x, float y) { return x*y; }
float quotient(float x, float y) { return x/y; }
float sum(float x, float y) { return x+y; }
float difference(float x, float y) { return x-y; }

boost::signal&lt;float (float x, float y)&gt; sig;

sig.connect(&amp;product);
sig.connect(&amp;quotient);
sig.connect(&amp;sum);
sig.connect(&amp;difference);

std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl; // Hier möchte ich in einer Schleife jeden Slot durchgehen und ihn mit verschiedenen Parametern aufrufen.
</code></pre>
<p>Geht das ? Wenn ja, wie ? Wenn nein, ist doch kake <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="=/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986967</guid><dc:creator><![CDATA[eyMannWoSindMeineSlots]]></dc:creator><pubDate>Sun, 28 Nov 2010 11:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 11:39:37 GMT]]></title><description><![CDATA[<p>eyMannWoSindMeineSlots schrieb:</p>
<blockquote>
<p>Wenn nein, ist doch kake <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="=/"
      alt="😕"
    /></p>
</blockquote>
<p>Falsch formuliert. Vielleicht ist ja boost::signals nicht dafür gemacht. Was müsste ich mir dann anschauen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986976</guid><dc:creator><![CDATA[eyMannWoSindMeineSlots]]></dc:creator><pubDate>Sun, 28 Nov 2010 11:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 11:47:12 GMT]]></title><description><![CDATA[<p>eyMannWoSindMeineSlots schrieb:</p>
<blockquote>
<p>Vielleicht ist ja boost::signals nicht dafür gemacht.</p>
</blockquote>
<p>Genau. Du willst eigentlich nur einzelne Funktionsaufrufe:</p>
<pre><code class="language-cpp">cout &lt;&lt; produkt(5,3) &lt;&lt; summe(10, 4) &lt;&lt; differenz(88,33) &lt;&lt; endl;
</code></pre>
<p>Wenn ich dich richtig verstehe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986978</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Nov 2010 11:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 12:02:15 GMT]]></title><description><![CDATA[<p>l'abra d'or  schrieb:</p>
<blockquote>
<p>Du willst eigentlich nur einzelne Funktionsaufrufe</p>
</blockquote>
<p>Und die kapselt man am Besten mit boost::function.</p>
<p>Du willst also eigentlich so was:</p>
<pre><code class="language-cpp">std::list&lt;boost::function&lt;float(float, float)&gt; &gt; funcs;
funcs.push_back(&amp;product);
funcs.push_back(&amp;quotient);
funcs.push_back(&amp;sum);
funcs.push_back(&amp;difference);
std::for_each(funcs.begin(), funcs.end(), std::cout &lt;&lt; (boost::lambda::_1)(5, 3) &lt;&lt; &quot;\n&quot;);
</code></pre>
<p>Wenn ich dich richtig verstehe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986982</guid><dc:creator><![CDATA[wennIchDichRichtigVersteh]]></dc:creator><pubDate>Sun, 28 Nov 2010 12:02:15 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 12:18:39 GMT]]></title><description><![CDATA[<p>eigentlich wollte ich mit boost::signals ein event system aufbauen.</p>
<p>ich dachte mir sowas in der art:</p>
<pre><code class="language-cpp">Object.addEvent(/*eventType*/ Event::CLICK, /*callback*/ doStuff, /*userdata*/data);
</code></pre>
<p>und in meiner Eventloop warte ich auf ein Klicksignal, falls eines ankommt rufe ich alle Click-Events des jeweiligen Objektes auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986989</guid><dc:creator><![CDATA[eyMannWoSindMeineSlots]]></dc:creator><pubDate>Sun, 28 Nov 2010 12:18:39 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 12:20:08 GMT]]></title><description><![CDATA[<p>wennIchDichRichtigVersteh schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>You know what I want!</p>
<p>Danke dir, genau das was ich haben will!<br />
Bietet der Standard nicht std::function an? Sollte doch das selbe sein oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986990</guid><dc:creator><![CDATA[eyMannWoSindMeineSlots]]></dc:creator><pubDate>Sun, 28 Nov 2010 12:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 12:29:41 GMT]]></title><description><![CDATA[<p>Eigentlich willst du sehr wohl boost::signals! Dein Kommentar im ersten Post wies in eine komplett andere Richtung:</p>
<blockquote>
<p>// Hier möchte ich in einer Schleife jeden Slot durchgehen und ihn mit verschiedenen Parametern aufrufen.</p>
</blockquote>
<p>Keine Ahnung, was du damit gemeint hast...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986994</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Nov 2010 12:29:41 GMT</pubDate></item><item><title><![CDATA[Reply to boost::signals mit verschiedenen parametern aufrufen on Sun, 28 Nov 2010 12:30:05 GMT]]></title><description><![CDATA[<p>Der Standard bietet <code>binary_function</code> an und die funktioniert bei solchen Dingen nicht richtig. <code>boost::function</code> ist daher im tr1 von C++ und vor allem in C++0x dabei. Wenn du sowieso C++0x benützt, kannst du auch die Lambda-Konstrukte vereinfachen.</p>
<p>Falls du dir wirklich ein event-System aufbauen willst, mach es halt so, wie es auch in der Boost-Lib gemacht wird:</p>
<pre><code class="language-cpp">template&lt;typename Container&gt;
struct aggregate_values
{
  typedef Container result_type;

  template&lt;typename InputIterator&gt;
  Container operator()(InputIterator first, InputIterator last) const
  {
    return Container(first, last);
  }
};

boost::signal&lt;float (float, float), 
    aggregate_values&lt;std::vector&lt;float&gt; &gt; &gt; sig;

sig.connect(&amp;quotient);
sig.connect(&amp;product);
sig.connect(&amp;sum);
sig.connect(&amp;difference);

std::vector&lt;float&gt; results = sig(5, 3);
std::copy(results.begin(), results.end(), 
    std::ostream_iterator&lt;float&gt;(cout, &quot; &quot;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1986995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986995</guid><dc:creator><![CDATA[wennIchDichRichtigVersteh]]></dc:creator><pubDate>Sun, 28 Nov 2010 12:30:05 GMT</pubDate></item></channel></rss>