<?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[Sowas wie typedef für Funktionen?]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich kann ja mit typedef ein Klassentemplate spezialisieren und benennen. Jetzt möchte ich aber das Selbe mit einem Funktionstemplate machen. Geht das irgendwie?</p>
<p>Ich kann sowas machen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class BlaBla
{
};

typedef BlaBla&lt;int&gt; IntBlaBla;
</code></pre>
<p>Was ich gerne möchte:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T Function(T)
{
}

typedef Function&lt;int&gt; IntFunction;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/178901/sowas-wie-typedef-für-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 02:25:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178901.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Apr 2007 13:01:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Mon, 16 Apr 2007 13:01:23 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich kann ja mit typedef ein Klassentemplate spezialisieren und benennen. Jetzt möchte ich aber das Selbe mit einem Funktionstemplate machen. Geht das irgendwie?</p>
<p>Ich kann sowas machen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class BlaBla
{
};

typedef BlaBla&lt;int&gt; IntBlaBla;
</code></pre>
<p>Was ich gerne möchte:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T Function(T)
{
}

typedef Function&lt;int&gt; IntFunction;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267104</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Apr 2007 13:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Mon, 16 Apr 2007 13:07:27 GMT]]></title><description><![CDATA[<p>Mist, falsches Forum. <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/1267105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267105</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Apr 2007 13:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Mon, 16 Apr 2007 15:27:57 GMT]]></title><description><![CDATA[<p>So wie bei nicht-template Funktionen auch:</p>
<pre><code class="language-cpp">typedef int (*IntFunction)(int);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267215</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 16 Apr 2007 15:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Mon, 16 Apr 2007 16:10:31 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-18363.html" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267236</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 16 Apr 2007 16:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Tue, 17 Apr 2007 06:23:54 GMT]]></title><description><![CDATA[<p>Ich habe einen anderen Weg gefunden. Blöde wird's, wenn man viele Funktionsparameter hat.</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T Function(T)
{
}

int (*IntFunction)(int) = Function&lt;int&gt;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267476</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 17 Apr 2007 06:23:54 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Tue, 17 Apr 2007 07:30:40 GMT]]></title><description><![CDATA[<p>Stoffel schrieb:</p>
<blockquote>
<p>Hallo zusammen</p>
<p>Ich kann ja mit typedef ein Klassentemplate spezialisieren ...</p>
</blockquote>
<p>Vielleicht bin ich kleinlich, aber Du solltest das nicht &quot;Spezialisierung&quot; nennen (auch wenn man das durchaus so nennen <em>könnte</em>), weil man unter &quot;Spezialisierung von templates&quot; eigentlich etwas ganz Bestimmtes versteht (und eine Spezialisierung in diesem Sinne ist das nicht, was Du da tust).</p>
<p>Was Du da in Deinem letzten Beispiel tust, ist auch kein &quot;typedef&quot;, sondern die Deklaration und Initialisierung eines Funktionspointers (= Einer Variable, die auf eine Funktion verweisen kann). Du hast also nicht einen Typ in der Hand, sondern eine Variable (je nach scope eine globale)....<br />
Ich würde das was Du willst, <em>überhaupt nicht</em> machen. Bei Funktionstemplates gibt es die automatische template-Deduktion, die anhand der übergebenen Parameter die richtigen Typen bestimmt - das konterkariert man mit Deinem Unterfangen.</p>
<p>Wenn Du es unbedingt brauchst (z.B. bei der Parametrisierung anderer templates ohne Fingerbruch), würde ich es in eine Klasse kapseln:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T Function(T t) { return t}

template&lt;typename T&gt;
struct FunctionStruct {
   T operator()(T t) { return Function(t); }
};

typedef FunctionStruct&lt;int&gt; IntFunction;
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267510</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 17 Apr 2007 07:30:40 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Tue, 17 Apr 2007 08:08:04 GMT]]></title><description><![CDATA[<p>Eigentlich möchte ich das Template nur benutzen, damit ich eine Funktion nicht für mehrere Typen einzeln implementieren muss. Der Anwender sollte eben nicht selbst das Template benutzen, sondern nur einige vordefinierte spezialisierungen des Funktionstemplates.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267530</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 17 Apr 2007 08:08:04 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Tue, 17 Apr 2007 08:30:59 GMT]]></title><description><![CDATA[<p>Dann solltest du das Template auch nicht offenlegen, sondern nur die Spezialisierungen, die du zulassen willst (Randfrage: Was soll der Sinn dahinter sein?).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267541</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Apr 2007 08:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Tue, 17 Apr 2007 09:01:54 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Dann solltest du das Template auch nicht offenlegen, sondern nur die Spezialisierungen, die du zulassen willst (Randfrage: Was soll der Sinn dahinter sein?).</p>
</blockquote>
<p>Ich bastle mir eine Inifile-Klasse. Da gibt es verschiedene Key-Typen, wie z.B. StringKey, BoolKey, DoubleKey. Zugegriffen wird auf diese über einen Key-Pointer (Polymorphie). Die Funktion, von der hier die Rede ist, soll eigentlich nur ein dynamic cast durchführen, und bei Erfolg die Adresse auf den Wert des Keys zurückgeben, wobei es für jeden Key-Type die passende geben muss. GetBoolValue, GetStringValue, etc.</p>
<p>Wie würdest du denn das Template verstecken? in einen eigenen namespace tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267562</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:01:54 GMT</pubDate></item><item><title><![CDATA[Reply to Sowas wie typedef für Funktionen? on Tue, 17 Apr 2007 09:06:20 GMT]]></title><description><![CDATA[<p>Ich würde das Template in einem CPP-File implementieren und im Header nur die benötigten Spezialisierungen notieren.</p>
<p>(das heißt, vermutlich würde ich mich darauf verlassen, daß dieser dynamic_cast&lt;&gt; sich nicht compilieren lässt, wenn der User einen falschen (nicht mit abtract_key verwandten) Datentyp anfordern will.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267567</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:06:20 GMT</pubDate></item></channel></rss>