<?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[C++ erlaubt Referenzen auf Funktionen?!]]></title><description><![CDATA[<p><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="😮"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void func()
{ std::cout &lt;&lt; &quot;Ja, tut es!\n&quot;; }

int main()
{
    void (&amp;funcref)() = func;
    funcref();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/157903/c-erlaubt-referenzen-auf-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 20:46:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157903.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Aug 2006 14:12:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Wed, 30 Aug 2006 14:12:31 GMT]]></title><description><![CDATA[<p><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="😮"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void func()
{ std::cout &lt;&lt; &quot;Ja, tut es!\n&quot;; }

int main()
{
    void (&amp;funcref)() = func;
    funcref();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1127661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127661</guid><dc:creator><![CDATA[Raptor]]></dc:creator><pubDate>Wed, 30 Aug 2006 14:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Wed, 30 Aug 2006 14:18:57 GMT]]></title><description><![CDATA[<p>Also es erlaubt ganz sicher folgendes:</p>
<pre><code class="language-cpp">void Func(int x, char* p)
{
    // Was aus immer
}

int main()
{
    int x;
    char* p;

    void (*pFunc)(int,char*) = Func;
    pFunc(x, p);
}
</code></pre>
<p>Nennt sich Funktionszeiger. Daher denke ich werden wohl Referenzen auch erlaubt sein, wieso nicht?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127665</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 30 Aug 2006 14:18:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Wed, 30 Aug 2006 14:32:29 GMT]]></title><description><![CDATA[<p>Danke, fuer deine Antwort, aber danach hab ich nicht gefragt. Ich weiss, was function pointer sind, aber ich habe noch nie eine function reference gesehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127681</guid><dc:creator><![CDATA[Raptor]]></dc:creator><pubDate>Wed, 30 Aug 2006 14:32:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Wed, 30 Aug 2006 14:37:47 GMT]]></title><description><![CDATA[<p>referenzen auf funktionen sind zulässig, wenn auch nicht besonders sinnvoll. tatsächlich sind funktionen in C++ lvalues eines funktionstyps - andernfalls könnte man sie nicht zur initialisierung von besagten referenzen benutzen, diese lvalues verweisen aber nicht auf ein objekt, und degenerieren in fast allen kontexten in pointer auf funktionen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ostream&gt;

void func()
{ std::cout &lt;&lt; &quot;Ja, tut es!\n&quot;; }

template&lt;typename T&gt; struct Foo { static const int value = 0; };
template&lt;typename T&gt; struct Foo&lt;T*&gt; { static const int value = 1; };
template&lt;typename T&gt; struct Foo&lt;T&amp;&gt; { static const int value = 2; };

template&lt;typename T&gt;
void foo(T) { std::cout &lt;&lt; Foo&lt;T&gt;::value &lt;&lt; std::endl; }

int main()
{
    void (&amp;funcref)() = func;
    funcref();
    foo(func);
    foo(funcref);
}
</code></pre>
<p>für nichtstatische memberfunktionen gilt dies nicht: es gibt keine referenzen auf nichtstatische memberfunktionen und es existieren auch keine geeigneten operatoren dafür.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127686</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 30 Aug 2006 14:37:47 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Wed, 30 Aug 2006 17:47:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Danke fuer die Antwort! <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="🙂"
    /><br />
Darf man fragen, woher du sowas weisst? Wo kann man sich genauer zum Thema 'interne Implementation von Funktionen/Methoden in C++' informieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127792</guid><dc:creator><![CDATA[Raptor]]></dc:creator><pubDate>Wed, 30 Aug 2006 17:47:38 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Thu, 31 Aug 2006 07:57:20 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">...
struct Foo { static const int value = 0; };
...
</code></pre>
<p>...</p>
</blockquote>
<p>Lustigerweise kommt mein einer Compiler (VC++ 6.0) damit nicht klar, sondern moniert an:<br />
&quot;... error C2252: 'value' : Nur Funktionen koennen rein virtuell deklariert werden&quot;<br />
(selbst ohne template)</p>
<p>Er kennt also keine statischen Memberkonstanten.<br />
Der GCC macht's aber.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128124</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 31 Aug 2006 07:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Thu, 31 Aug 2006 08:17:44 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">...
struct Foo { static const int value = 0; };
...
</code></pre>
<p>...</p>
</blockquote>
<p>Lustigerweise kommt mein einer Compiler (VC++ 6.0) damit nicht klar, sondern moniert an:<br />
&quot;... error C2252: 'value' : Nur Funktionen koennen rein virtuell deklariert werden&quot;<br />
(selbst ohne template)</p>
<p>Er kennt also keine statischen Memberkonstanten.<br />
Der GCC macht's aber.</p>
<p>Gruß,</p>
<p>Simon2.</p>
</blockquote>
<p>ja, das ist der vc++6.0 kein vorzeige-compiler. nimm halt alternativ enums. es ging mir ja nur darum, zu demonstrieren, welcher parametertyp hier als folge des funktionsarguments deduziert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128138</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 31 Aug 2006 08:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to C++ erlaubt Referenzen auf Funktionen?! on Thu, 31 Aug 2006 08:46:49 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>...ja, das ist der vc++6.0 kein vorzeige-compiler. nimm halt alternativ enums. es ging mir ja nur darum, zu demonstrieren, welcher parametertyp hier als folge des funktionsarguments deduziert wird.</p>
</blockquote>
<p>Habe das schon richtig verstanden und nehme den VC++6.0 auch nur, weil er auf der Arbeit vorgeschrieben ist (und da werden mir für templates und Funktionsreferenzen sowieso die Hände abgehackt <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="😉"
    /> ).<br />
Interessante Sachen mache ich eh' mit dem gcc. <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128158</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 31 Aug 2006 08:46:49 GMT</pubDate></item></channel></rss>