<?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-Typen und typedef]]></title><description><![CDATA[<p>Wenn ich den Typ eines Integerfelds mit einem neuen Namen versehen will, kann ich es ja so machen:</p>
<pre><code class="language-cpp">typedef vector&lt;int&gt; INT_ARRAY;
</code></pre>
<p>Was muß ich aber machen, wenn ich nur den vector generell umbenennen will, so daß ich nachhher schreiben kann:</p>
<pre><code class="language-cpp">ARRAY&lt;int&gt; array;
</code></pre>
<p>Wenn ich</p>
<pre><code class="language-cpp">typedef vector ARRAY;
</code></pre>
<p>schreibe, funktioniert es nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194867/template-typen-und-typedef</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 21:16:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194867.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Oct 2007 16:15:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template-Typen und typedef on Thu, 11 Oct 2007 16:15:55 GMT]]></title><description><![CDATA[<p>Wenn ich den Typ eines Integerfelds mit einem neuen Namen versehen will, kann ich es ja so machen:</p>
<pre><code class="language-cpp">typedef vector&lt;int&gt; INT_ARRAY;
</code></pre>
<p>Was muß ich aber machen, wenn ich nur den vector generell umbenennen will, so daß ich nachhher schreiben kann:</p>
<pre><code class="language-cpp">ARRAY&lt;int&gt; array;
</code></pre>
<p>Wenn ich</p>
<pre><code class="language-cpp">typedef vector ARRAY;
</code></pre>
<p>schreibe, funktioniert es nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383012</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Thu, 11 Oct 2007 16:18:42 GMT]]></title><description><![CDATA[<blockquote>
<p>Was muß ich aber machen, wenn ich nur den vector generell umbenennen will</p>
</blockquote>
<p>das geht (noch) nicht.</p>
<p>btw. All-Upper-Case Typnamen sind so was von 70er <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383014</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:18:42 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Thu, 11 Oct 2007 16:29:02 GMT]]></title><description><![CDATA[<p>Wirklich nicht? Ich wollte nämlich ein zweidimensionales Feld (vector&lt;vector&gt;) definieren und es dann mit verschiedenen Typen benutzen.<br />
Gibt es da keinen Trick?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383021</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:29:02 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Thu, 11 Oct 2007 16:51:16 GMT]]></title><description><![CDATA[<p>So würde es mit einem Workaround gehen.</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

using namespace std;

template&lt;class T&gt;
class Wrapper
{
    public:
        typedef vector&lt;vector&lt;T&gt; &gt; myType;
};

int main(void)
{
    Wrapper&lt;int&gt;::myType myArray;
}
</code></pre>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383035</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Thu, 11 Oct 2007 16:57:34 GMT]]></title><description><![CDATA[<p>Danke für den Tip.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383038</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Thu, 11 Oct 2007 22:00:13 GMT]]></title><description><![CDATA[<p>Wenn man &quot;template typedefs&quot; braucht ist der übliche Workaround abzuleiten.</p>
<p>Wenn es anders auch geht (z.B. was Phoemuex vorgeschlagen hat) ist das natürlich ... &quot;besser&quot; <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383270</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 11 Oct 2007 22:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 09:59:59 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Wenn man &quot;template typedefs&quot; braucht ist der übliche Workaround abzuleiten.</p>
</blockquote>
<p>Hä? Das versteh ich jetzt nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383561</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Fri, 12 Oct 2007 09:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 10:20:47 GMT]]></title><description><![CDATA[<p>Ich würde mal darauf tippen, daß er sowas meinte:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class Matrix : public vector&lt;vector&lt;T&gt; &gt;
{
  ...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1383580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383580</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 10:23:07 GMT]]></title><description><![CDATA[<p>Aber wurde nicht mal gesagt, daß man von den Standard-C++-Klassen nicht ableiten soll (weil die keinen virtuellen Destruktor oder so haben)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383584</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:23:07 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 10:25:38 GMT]]></title><description><![CDATA[<p>Du kannst schon ableiten, nur verhindert der nicht-virtuelle Dtor, daß du sie polymorph einsetzen kannst. (und wie hustbaer auch gesagt hat, ist die Wrapper-Variante auch besser)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383590</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:25:38 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 10:47:59 GMT]]></title><description><![CDATA[<p>Aha.</p>
<p>P.S.: Gibt es eigentlich einen Unterschied zwischen</p>
<pre><code class="language-cpp">template&lt;typename T&gt; 
class Objekt
{
};
</code></pre>
<p>und</p>
<pre><code class="language-cpp">template&lt;class T&gt; 
class Objekt
{
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1383616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383616</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 10:49:36 GMT]]></title><description><![CDATA[<p>technisch: nein. (die Variante mit typename ist &quot;jünger&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383619</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 10:51:09 GMT]]></title><description><![CDATA[<p>Einen winzigen Unterschied gibt es schon. An dieser Stelle ist nur class erlaubt:</p>
<pre><code class="language-cpp">template&lt; template&lt; typename &gt; class T &gt;
class XYZ {};
</code></pre>
<p>(Weiss jemand warum?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383620</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 13:13:59 GMT]]></title><description><![CDATA[<p>Weil das ein Template-Template Argument ist. D.h. es muss ein Name eines Templates übergeben werden, das man mit einem (Typ-)Argument instanziieren kann. Da Built-in-Typen keine Templates sind (ein können), muss der übergebene Templatename wohl oder übel eine (Template-)Klasse (und keinen beliebigen Typ) bezeichnen.</p>
<p>Bei normalen Templateargumenten sind im Gegensatz dazu ja sowohl built-in-Typen, als auch Klassen erlaubt.</p>
<p>Eine wirkliche Begründung ist das auch nicht, aber es klingt plausibel <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>
<p>Der wirkliche Grund ist halt: Weil es der Standard so vorgibt <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>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383778</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Fri, 12 Oct 2007 13:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 14:37:42 GMT]]></title><description><![CDATA[<p>Templates können als Klassen- und als Funktionstemplate auftreten. Die Verwendung von class an dieser Stelle, um den Bezug auf Klassentemplates zu verstärken (auch wenn Funktionstemplates gar nicht als Templateargument auftreten können), hat daher einen gewissen Sinn. Interessant ist dabei eher, dass wir nicht auch union oder struct benutzen dürfen - class umfasst in Templatetemplateparameterdeklarationen alle Varianten - schließlich muss in normalen Deklarationen immer der gleiche class-key verwendet werden. Die Möglichkeit, Typparameter mit class zu deklarieren, dürfte demgegenüber eher als historisch bedingter Unfall gelten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383837</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 12 Oct 2007 14:37:42 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Fri, 12 Oct 2007 15:04:57 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Du kannst schon ableiten, nur verhindert der nicht-virtuelle Dtor, daß du sie polymorph einsetzen kannst. (und wie hustbaer auch gesagt hat, ist die Wrapper-Variante auch besser)</p>
</blockquote>
<p>In diesem Fall wäre das allerdings auch kein Problem. Es wird erst problematisch, wenn man eigene Member einführt oder im Destruktor irgendwas macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383867</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 12 Oct 2007 15:04:57 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Typen und typedef on Mon, 15 Oct 2007 07:01:49 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Du kannst schon ableiten, nur verhindert der nicht-virtuelle Dtor, daß du sie polymorph einsetzen kannst. (und wie hustbaer auch gesagt hat, ist die Wrapper-Variante auch besser)</p>
</blockquote>
<p>In diesem Fall wäre das allerdings auch kein Problem. Es wird erst problematisch, wenn man eigene Member einführt oder im Destruktor irgendwas macht.</p>
</blockquote>
<p>Nein, auch mit einer leeren Vererbung könnte es schon Probleme geben. Du weißt schließlich nicht, was für Aufwand der Compiler noch betreibt, um die Vererbung umzusetzen.</p>
<p>Nur zur Klärung:</p>
<pre><code class="language-cpp">base* ptr = new derived;
...
delete ptr;
</code></pre>
<p>Das Verhalten davon ist undefiniert, solange base keinen virtuellen Destruktor hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385301</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 15 Oct 2007 07:01:49 GMT</pubDate></item></channel></rss>