<?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[Wie viele Pack-Expansions schafft ihr in einem Ausdruck?]]></title><description><![CDATA[<p>Huhu,</p>
<p>Beim Implementieren meiner Lambda-Lib hab ich mich gefragt, ob ihr das überbieten könnt? <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>
<pre><code class="language-cpp">template &lt;unsigned... I, typename... Args&gt;
auto impl(detail::indices&lt;I...&gt;, Args&amp;&amp;... args) const
	-&gt; decltype((std::declval&lt;Object&gt;()(std::forward&lt;Args&gt;(args)...)-&gt;*std::declval&lt;Member&gt;()(std::forward&lt;Args&gt;(args)...))(std::get&lt;I&gt;(std::declval&lt;std::tuple&lt;Expr...&gt;&gt;())(std::forward&lt;Args&gt;(args)...)...)) // ...
{
	return (object(std::forward&lt;Args&gt;(args)...)-&gt;*member(std::forward&lt;Args&gt;(args)...))(std::get&lt;I&gt;(expr)(std::forward&lt;Args&gt;(args)...)...);
}
</code></pre>
<p>Der Rückgabetyp hat 5, das return 4 Expansions.</p>
<p>Grüßle,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302597/wie-viele-pack-expansions-schafft-ihr-in-einem-ausdruck</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 06:50:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302597.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Apr 2012 00:17:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 00:36:48 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>Beim Implementieren meiner Lambda-Lib hab ich mich gefragt, ob ihr das überbieten könnt? <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>
<pre><code class="language-cpp">template &lt;unsigned... I, typename... Args&gt;
auto impl(detail::indices&lt;I...&gt;, Args&amp;&amp;... args) const
	-&gt; decltype((std::declval&lt;Object&gt;()(std::forward&lt;Args&gt;(args)...)-&gt;*std::declval&lt;Member&gt;()(std::forward&lt;Args&gt;(args)...))(std::get&lt;I&gt;(std::declval&lt;std::tuple&lt;Expr...&gt;&gt;())(std::forward&lt;Args&gt;(args)...)...)) // ...
{
	return (object(std::forward&lt;Args&gt;(args)...)-&gt;*member(std::forward&lt;Args&gt;(args)...))(std::get&lt;I&gt;(expr)(std::forward&lt;Args&gt;(args)...)...);
}
</code></pre>
<p>Der Rückgabetyp hat 5, das return 4 Expansions.</p>
<p>Grüßle,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204668</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 00:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 00:26:28 GMT]]></title><description><![CDATA[<p>First I was like <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> , but then I saw the comment. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2204669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204669</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 23 Apr 2012 00:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 01:24:49 GMT]]></title><description><![CDATA[<p>Wieso eine Lambda Library wenn du C++11 hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204670</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 23 Apr 2012 01:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 01:35:33 GMT]]></title><description><![CDATA[<p>Weil C++11 Lambdas nicht polymorph und umständlich zu schreiben sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204671</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 01:35:33 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 05:30:43 GMT]]></title><description><![CDATA[<p>Three-Star-Programmer.<br />
Oder Three-Dot-Programmer?<br />
ich finde beides gruseligst unwartbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204679</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 23 Apr 2012 05:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:15:48 GMT]]></title><description><![CDATA[<p>Schreibs besser <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204691</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:22:23 GMT]]></title><description><![CDATA[<p>ich bin mir nicht mal sicher, was das Ding überhaupt machen soll.</p>
<p>//edit ich vermute, dass sich die Situation schon deutlichst vereinfachen würde, wenn du</p>
<pre><code class="language-cpp">object(std::forward&lt;Args&gt;(args)...)-&gt;*member(std::forward&lt;Args&gt;(args)...)
</code></pre>
<p>eine eigene Funktion spendieren würdest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204692</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:22:24 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>ich bin mir nicht mal sicher, was das Ding überhaupt machen soll.</p>
</blockquote>
<p>Na das sieht man doch direkt am sprechenden Funktionsnamen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204694</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:22:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:29:05 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>//edit ich vermute, dass sich die Situation schon deutlichst vereinfachen würde, wenn du</p>
<pre><code class="language-cpp">object(std::forward&lt;Args&gt;(args)...)-&gt;*member(std::forward&lt;Args&gt;(args)...)
</code></pre>
<p>eine eigene Funktion spendieren würdest.</p>
</blockquote>
<p>Geht nicht, das Ding ist der Aufruf einer Member-Funktion mit Argumenten. Also (object.*member)(args...);</p>
<p>Das Ding repräsentiert genau so einen Ausdruck in einer Lambda.</p>
<pre><code class="language-cpp">template &lt;typename Object, typename Member, typename... Expr&gt;
	struct pointer_to_member_function_call_expression : expression&lt;pointer_to_member_function_call_expression&lt;Object, Member, Expr...&gt;&gt;
	{
		pointer_to_member_function_call_expression(Object object, Member member, Expr... expr)
			: object(object), member(member), expr{ expr... }
		{}

	private:
		template &lt;unsigned... I, typename... Args&gt;
		auto impl(detail::indices&lt;I...&gt;, Args&amp;&amp;... args) const
			-&gt; decltype((std::declval&lt;Object&gt;()(std::forward&lt;Args&gt;(args)...)-&gt;*std::declval&lt;Member&gt;()(std::forward&lt;Args&gt;(args)...))(std::get&lt;I&gt;(std::declval&lt;std::tuple&lt;Expr...&gt;&gt;())(std::forward&lt;Args&gt;(args)...)...)) // ...
		{
			return (object(std::forward&lt;Args&gt;(args)...)-&gt;*member(std::forward&lt;Args&gt;(args)...))(std::get&lt;I&gt;(expr)(std::forward&lt;Args&gt;(args)...)...);
		}

	public:
		template &lt;typename... Args&gt;
		auto operator () (Args&amp;&amp;... args) const
			-&gt; decltype(this-&gt;impl(typename detail::make_indices&lt;sizeof...(Expr)&gt;::type(), std::forward&lt;Args&gt;(args)...))
		{
			return impl(typename detail::make_indices&lt;sizeof...(Expr)&gt;::type(), std::forward&lt;Args&gt;(args)...);
		}

	private:
		Object const object;
		Member const member;
		std::tuple&lt;Expr...&gt; const expr;
	};
</code></pre>
<p>Bin mal gespannt, wie ihr das schöner löst <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/2204695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204695</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:29:05 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:36:07 GMT]]></title><description><![CDATA[<p>ich weiß schon warum ich bei c bleib, da gibts keine lambdas deren nutzen mir eh schleierhaft ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204697</guid><dc:creator><![CDATA[klimbim]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:40:17 GMT]]></title><description><![CDATA[<p>Ich weiß schon, warum ich bei C++ bleibe, da gibts wenigstens Abstraktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204698</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:48:28 GMT]]></title><description><![CDATA[<p>wo ist der abstraktions unterschied zwischen einer anonymen und einer 'benannten' funktion <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=":confused:"
      alt="😕"
    /></p>
<p>dass die benannten langweilig sind, weiß ich schon und als ich von js zu c kam, hab ich es auch vermisst aber man gewöhnt sich dran und nach einiger zeit, dachte ich mir, dass es eig. total stupide ist, funkionskörper ständig neu zu schreiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204700</guid><dc:creator><![CDATA[klimbim]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 06:51:54 GMT]]></title><description><![CDATA[<p>klimbim schrieb:</p>
<blockquote>
<p>wo ist der abstraktions unterschied zwischen einer anonymen und einer 'benannten' funktion <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=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Nirgens. Du hast dir ein dummes Argument für C gesucht, ich mir (mit Absicht) ein noch viel dümmeres für C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204702</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 06:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 07:13:38 GMT]]></title><description><![CDATA[<p>Ich seh schon wohin das führt. Wenn hier nichts sinvolles mehr kommt mach ich zu, bevor das hier zum (n+1)ten Flamewar eskaliert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204706</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 23 Apr 2012 07:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Pack-Expansions schafft ihr in einem Ausdruck? on Mon, 23 Apr 2012 07:18:35 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Ich seh schon wohin das führt.</p>
</blockquote>
<p>Du siehst das falsch. Ich habe einem Falmewar vorgebeut, indem ich noch viel größeren Mist gepostet habe. Das funktioniert 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>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Wenn hier nichts sinvolles mehr kommt mach ich zu, bevor das hier zum (n+1)ten Flamewar eskaliert.</p>
</blockquote>
<p>Mir wäre lieber, du würdest die Posts einfach löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2204707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2204707</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 23 Apr 2012 07:18:35 GMT</pubDate></item></channel></rss>