<?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[Funktionspointer]]></title><description><![CDATA[<p>Vielleicht sitze ich auch gerade auf dem Schlauch aber wie deklariert man eine Funktion die ein Funktionspointer auf eine Funktion mit der gleichen Signature zurückgibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/120965/funktionspointer</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 13:03:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/120965.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Sep 2005 12:25:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionspointer on Sun, 18 Sep 2005 12:25:04 GMT]]></title><description><![CDATA[<p>Vielleicht sitze ich auch gerade auf dem Schlauch aber wie deklariert man eine Funktion die ein Funktionspointer auf eine Funktion mit der gleichen Signature zurückgibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/874860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/874860</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Sun, 18 Sep 2005 12:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer on Sun, 18 Sep 2005 12:34:48 GMT]]></title><description><![CDATA[<p>Mit typedef geht es so:</p>
<pre><code class="language-cpp">int blah()
{
    cout &lt;&lt; &quot;\nblah&quot;;
    return 0;
}

typedef int (*func_ptr)();

func_ptr blub()
{
    return &amp;blah;
}

int main()
{
    int (*ptr)() = blub();

    (*ptr)();

    return 0;
}
</code></pre>
<p>Oder hab ich dich falsch verstanden?</p>
<p>Ansonsten: Wie es ohne typedef geht, würde mich auch interessieren.</p>
<p>Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/874870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/874870</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 18 Sep 2005 12:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer on Sun, 18 Sep 2005 12:37:09 GMT]]></title><description><![CDATA[<p>Ben04 schrieb:</p>
<blockquote>
<p>Vielleicht sitze ich auch gerade auf dem Schlauch aber wie deklariert man eine Funktion die ein Funktionspointer auf eine Funktion mit der gleichen Signature zurückgibt?</p>
</blockquote>
<p>Direkt gar nicht, da eine solche Typdeklaration rekursiv wäre.</p>
<p>Wie immer hilft aber die sprichwörtliche Indirektion[1]:</p>
<pre><code class="language-cpp">class FuncPtrHelper;

typedef FuncPtrHelper (*FuncPtr)();

class FuncPtrHelper {
public:
    FuncPtrHelper(FuncPtr p) : p_(p) {}
    operator FuncPtr() {return p_;}
private:
    FuncPtr p_;
};

FuncPtrHelper f() {
    return f;
}

int main() {
    FuncPtr p = f();
    p();
}
</code></pre>
<p>[1] siehe Herb Sutter: &quot;More Exceptional C++&quot; - Item 32</p>
]]></description><link>https://www.c-plusplus.net/forum/post/874872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/874872</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sun, 18 Sep 2005 12:37:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer on Sun, 18 Sep 2005 14:52:12 GMT]]></title><description><![CDATA[<p>Caipi schrieb:</p>
<blockquote>
<p>Oder hab ich dich falsch verstanden?</p>
</blockquote>
<p>Hast du denn die Funktion hat eine andere Signature als der zurückgegebene Pointer.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/30712">@Hume</a> danke für deine Antwort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/874970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/874970</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Sun, 18 Sep 2005 14:52:12 GMT</pubDate></item></channel></rss>