<?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[template declaration of typedef nicht erlaubt?]]></title><description><![CDATA[<p>Servus,</p>
<p>ich habe eine Templateklasse, die von drei Parametern abhängt. Für einen Teil meines Programms sind aber die ersten beiden Template-Argumente fix und ich würde daher gerne aus Schreibarbeitsgründen einen typedef anlegen. Das geht aber nicht, da ja ein Parameter frei bleiben muss:</p>
<pre><code class="language-cpp">template &lt;typename A, typename B, typename C&gt;
class Foo{
    // declarations..
};

// Statt Foo&lt;Bar, Blah, int&gt; würde ich gerne Blubb&lt;int&gt; schreiben wollen:
template &lt;typename T&gt;
typedef Foo&lt;Bar, Blah, T&gt; Blubb&lt;T&gt;
</code></pre>
<p>Das moniert der Kompiler (gcc 4.4) mit einem schlichten<br />
&quot;error: template declaration of ‘typedef’&quot;</p>
<p>Gibt's einen Weg hier eine convenience-Typedef zu machen?</p>
<p>Gute nacht,<br />
Phil</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258850/template-declaration-of-typedef-nicht-erlaubt</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 03:13:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258850.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jan 2010 23:03:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:03:24 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ich habe eine Templateklasse, die von drei Parametern abhängt. Für einen Teil meines Programms sind aber die ersten beiden Template-Argumente fix und ich würde daher gerne aus Schreibarbeitsgründen einen typedef anlegen. Das geht aber nicht, da ja ein Parameter frei bleiben muss:</p>
<pre><code class="language-cpp">template &lt;typename A, typename B, typename C&gt;
class Foo{
    // declarations..
};

// Statt Foo&lt;Bar, Blah, int&gt; würde ich gerne Blubb&lt;int&gt; schreiben wollen:
template &lt;typename T&gt;
typedef Foo&lt;Bar, Blah, T&gt; Blubb&lt;T&gt;
</code></pre>
<p>Das moniert der Kompiler (gcc 4.4) mit einem schlichten<br />
&quot;error: template declaration of ‘typedef’&quot;</p>
<p>Gibt's einen Weg hier eine convenience-Typedef zu machen?</p>
<p>Gute nacht,<br />
Phil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839555</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:10:53 GMT]]></title><description><![CDATA[<p>Ich glaube das geht erst mit dem neuen Standard... bin mir aber nicht sicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839559</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:12:19 GMT]]></title><description><![CDATA[<p>Template Typedefs sind nicht möglich. Im nächsten C++-Standard wird es Template Aliases geben.</p>
<p>Momentan kannst du dir sowas basteln:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
struct Blubb
{
    typedef Foo&lt;Bar, Blah, T&gt; Type;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1839560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839560</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:12:59 GMT]]></title><description><![CDATA[<p><a href="http://www.drakon.ch/" rel="nofollow">http://www.drakon.ch/</a><br />
Siehe <em>template alias</em> im Beitrag vom 27. Dezember 2009...<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839561</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:17:04 GMT]]></title><description><![CDATA[<p>Ahh danke, das mit dem struct funktioniert !</p>
<p>Ich glaube, ich hab letztes Jahr zuviel Scheme programmiert... Ständig möchte ich aus Funktionen mit 4 Parametern durch setzen zweier Parameter Funktionen mit zwei Parametern erzeugen, und jetzt wo das mit boost::lambda geht, versuche ich diese Denkweise auf Templates zu übertragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839562</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:17:04 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:33:37 GMT]]></title><description><![CDATA[<p>PhilippM schrieb:</p>
<blockquote>
<p>Ständig möchte ich aus Funktionen mit 4 Parametern durch setzen zweier Parameter Funktionen mit zwei Parametern erzeugen, und jetzt wo das mit boost::lambda geht</p>
</blockquote>
<p>Wäre für das Binden von Argumenten nicht eher Boost.Bind geeignet?</p>
<p>Keine Sorge, mit C++0x eröffnen sich unter anderem neue Möglichkeiten hinsichtlich funktionaler Programmierung, da z.B. Lambda-Ausdrücke direkt als Sprachmittel angeboten werden. <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/1839565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839565</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:44:52 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>PhilippM schrieb:</p>
<blockquote>
<p>...jetzt wo das mit boost::lambda geht</p>
</blockquote>
<p>Wäre für das Binden von Argumenten nicht eher Boost.Bind geeignet?</p>
</blockquote>
<p>Mein ich doch... Aber lambda ist auch fein <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>Hat nur leider alles den Nachteil, das die WTF-Rate*) beim reviewen meines Codes (durch die Leute, die Templates nur alle heiligen Zeiten mal benutzen) in letzter Zeit extrem angestiegen ist:</p>
<p>* <a href="http://www.osnews.com/images/comics/wtfm.jpg" rel="nofollow">http://www.osnews.com/images/comics/wtfm.jpg</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839569</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:44:52 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:52:27 GMT]]></title><description><![CDATA[<p>Naja, und was dahinter steckt, ist auch nicht ganz ohne. Der Typ des Ausdrucks</p>
<pre><code class="language-cpp">_1 &gt; 15 &amp;&amp; _2 &lt; 20
</code></pre>
<p>ist zum Beispiel</p>
<pre><code class="language-cpp">lambda_functor&lt;
    lambda_functor_base&lt;
        logical_action&lt;and_action&gt;,
        tuple&lt;
            lambda_functor&lt;
                lambda_functor_base&lt;
                    relational_action&lt;greater_action&gt;,
                    tuple&lt;
                        lambda_functor&lt;placeholder&lt;1&gt; &gt;,
                        int const
                    &gt; 
                &gt; 
            &gt;,
            lambda_functor&lt;
                lambda_functor_base&lt;
                    relational_action&lt;less_action&gt;,
                    tuple&lt;
                        lambda_functor&lt;placeholder&lt;2&gt; &gt;,
                        int const 
                    &gt; 
                &gt; 
            &gt;
        &gt; 
    &gt; 
&gt;
</code></pre>
<p>(Quelle: <a href="http://www.boost.org/doc/libs/1_35_0/doc/html/typeof.html" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/doc/html/typeof.html</a>)</p>
<p>Boost.Bind gefällt mir sehr, vor allem in Verbindung mit Boost.Function, aber Boost.Lambda benutze ich selbst nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839573</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Fri, 15 Jan 2010 23:59:12 GMT]]></title><description><![CDATA[<p>Und ich wunder mich immer, warum an meinem Notebook der CPU-Lüfter aufdreht, wenn ich was kompiliere... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839577</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Fri, 15 Jan 2010 23:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Sat, 16 Jan 2010 09:18:37 GMT]]></title><description><![CDATA[<p>PhilippM schrieb:</p>
<blockquote>
<p>Und ich wunder mich immer, warum an meinem Notebook der CPU-Lüfter aufdreht, wenn ich was kompiliere... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>LOL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839631</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 16 Jan 2010 09:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Sat, 16 Jan 2010 09:20:40 GMT]]></title><description><![CDATA[<p>Also wenn ich Nexus Code so sehe, frage ich mich ob ich kotzen oder die Hand in die Hose führen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839632</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sat, 16 Jan 2010 09:20:40 GMT</pubDate></item><item><title><![CDATA[Reply to template declaration of typedef nicht erlaubt? on Sat, 16 Jan 2010 13:06:56 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<p><a href="http://www.drakon.ch/" rel="nofollow">http://www.drakon.ch/</a><br />
Siehe <em>template alias</em> im Beitrag vom 27. Dezember 2009...<br />
Simon</p>
</blockquote>
<p>Es gibt auch Dierct Links:<br />
<a href="http://www.drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=84" rel="nofollow">http://www.drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=84</a></p>
<p>Einfach auf den Titel des Beitrages klicken und dann hat man den Beitrag einzeln.<br />
(das verlinken mit Datum hat mich auch immer genervt, darum habe ich das dann auch eingebaut. :))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839740</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 16 Jan 2010 13:06:56 GMT</pubDate></item></channel></rss>