<?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[typedef in Verbindung mit Templates]]></title><description><![CDATA[<p>Hallo,</p>
<p>dieses mal habe ich eine kleine Frage zu Templates. Und zwar kann man mit Template spezialsierung (wenn es so heißt) wirklich tolle Sachen machen. Beispiel:</p>
<pre><code class="language-cpp">template&lt;int geschwindigkeit, bool automobil&gt;
struct car;

template&lt; geschwindigkeit &lt; 100, true&gt;
struct car
{
.. Struktur A ..
}

template&lt; geschwindigkeit &lt; 100, false&gt;
struct car
{
.. Struktur B ..
}

.
.
.
</code></pre>
<p>Und nun zu meiner Frage:</p>
<p>Was bringt es mir, wenn plötzlich so etwas auftaucht:</p>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug
</code></pre>
<p>Bzw. wie kann ich nun den Typ 'fahrzeug' nutzen?</p>
<p>Stehe momentan total auf dem Schlauch.</p>
<p>Viele grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247167/typedef-in-verbindung-mit-templates</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 13:56:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247167.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Aug 2009 07:54:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 07:54:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>dieses mal habe ich eine kleine Frage zu Templates. Und zwar kann man mit Template spezialsierung (wenn es so heißt) wirklich tolle Sachen machen. Beispiel:</p>
<pre><code class="language-cpp">template&lt;int geschwindigkeit, bool automobil&gt;
struct car;

template&lt; geschwindigkeit &lt; 100, true&gt;
struct car
{
.. Struktur A ..
}

template&lt; geschwindigkeit &lt; 100, false&gt;
struct car
{
.. Struktur B ..
}

.
.
.
</code></pre>
<p>Und nun zu meiner Frage:</p>
<p>Was bringt es mir, wenn plötzlich so etwas auftaucht:</p>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug
</code></pre>
<p>Bzw. wie kann ich nun den Typ 'fahrzeug' nutzen?</p>
<p>Stehe momentan total auf dem Schlauch.</p>
<p>Viele grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756738</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Fri, 07 Aug 2009 07:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 08:15:08 GMT]]></title><description><![CDATA[<p>MrMilk schrieb:</p>
<blockquote>
<p>Und nun zu meiner Frage:</p>
<p>Was bringt es mir, wenn plötzlich so etwas auftaucht:</p>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug
</code></pre>
<p>Bzw. wie kann ich nun den Typ 'fahrzeug' nutzen?</p>
</blockquote>
<p>Reduzierung des Schreibaufwandes. Du kannst nun statt &quot;car&lt;geschwindigkeit,automobil&gt;&quot; halt einfach &quot;fahrzeug&quot; schreiben. Es ist nichts anderes als eine Abkürzung für ein und die selbe Sache.</p>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug;

// Nun ist:
std::vector&lt;car&lt;geschwindigkeit,automobil&gt; &gt; fahrzeugListe;
// Identisch mit
std::vector&lt;fahrzeug&gt; fahrzeugListe;
</code></pre>
<p>Wie gesagt... eine reine Reduzierung des Schreibaufwandes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756747</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 07 Aug 2009 08:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 08:17:21 GMT]]></title><description><![CDATA[<p>MrMilk schrieb:</p>
<blockquote>
<p>Bzw. wie kann ich nun den Typ 'fahrzeug' nutzen?</p>
</blockquote>
<p><code>fahrzeug</code> ist das gleiche, wie wenn du <code>car&lt;geschwindigkeit,automobil&gt;</code> hinschreiben würdest. Damit musst du nicht mehr immer alle Templateparameter explizit angeben. Nutzt man zum Beispiel auch oft bei den STL Container:</p>
<pre><code class="language-cpp">typedef std::map&lt;std::string, std::string&gt; Dictionary;

Dictionary dictionary;
// statt:
std::map&lt;std::string, std::string&gt; dictionary;

// oder dann:
Dictionary::const_iterator iter = dictionary.find(&quot;hello&quot;);
// statt:
std::map&lt;std::string, std::string&gt;::const_iterator iter = dictionary.find(&quot;hello&quot;);
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756748</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 07 Aug 2009 08:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 08:18:24 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">template&lt; geschwindigkeit &lt; 100, true&gt;
struct car
{
.. Struktur A ..
}
</code></pre>
</blockquote>
<p>sowas gibts nicht. wenn der erste Parameter ein int sein soll dann musst du auch einen übergeben. sowas wäre möglich:</p>
<pre><code class="language-cpp">template &lt;int geschwindigkeit&gt;
struct car&lt;geschwindigkeit, true&gt;
{
 /* ... */
};
</code></pre>
<p>Schreib am Besten den Code den du wirklich vorfindest und nicht etwas was so ähnlich aussieht, aber keinen Sinn ergibt <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>MrMilk schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug
</code></pre>
</blockquote>
<p>Sowas geht nur wenn geschwindigkeit und automobil vorher festgelegt wurden, z.B.</p>
<pre><code class="language-cpp">typedef car&lt;100, true&gt; lahmesauto;
typedef car&lt;280, true&gt; flotterflitzer;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1756749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756749</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 07 Aug 2009 08:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 08:51:29 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Schreib am Besten den Code den du wirklich vorfindest und nicht etwas was so ähnlich aussieht, aber keinen Sinn ergibt <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>
</blockquote>
<p>Klar. Hatte die Datei nicht richtig eingebunden und somit keinen Fehler erhalten. Erst nach den abschicken viel mir auf, dass es noch voller Fehler ist. Werde mich bessern <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>
<p>Aber noch einmal eine Frage:</p>
<p>Also macht das Nutzen eine Typdefinition nur Sinn, wenn ich schon feste Werte angebe, richtig? (Wie in deinem Beispiel)</p>
<pre><code class="language-cpp">typedef car&lt;100, true&gt; lahmesauto;
typedef car&lt;280, true&gt; flotterflitzer;
</code></pre>
<p>Wogegen so etwas nicht viel Sinn macht:</p>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug
</code></pre>
<p>Mann könnte das Kind noch aus dem Brunnen ziehen mit:</p>
<pre><code class="language-cpp">#define geschwindigekeit 100
#define automobil false
</code></pre>
<p>Viele Grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756770</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Fri, 07 Aug 2009 08:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 08:59:06 GMT]]></title><description><![CDATA[<p>MrMilk schrieb:</p>
<blockquote>
<p>Mann könnte das Kind noch aus dem Brunnen ziehen mit:</p>
<pre><code class="language-cpp">#define geschwindigekeit 100
#define automobil false
</code></pre>
</blockquote>
<p><code>#define</code> ist doof.</p>
<pre><code class="language-cpp">const int geschwindigkeit = 100;
const bool automobil = false;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1756775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756775</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Fri, 07 Aug 2009 08:59:06 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 11:20:34 GMT]]></title><description><![CDATA[<p>MrMilk schrieb:</p>
<blockquote>
<p>Wogegen so etwas nicht viel Sinn macht:</p>
<pre><code class="language-cpp">typedef car&lt;geschwindigkeit,automobil&gt; fahrzeug
</code></pre>
</blockquote>
<p>Macht keinen Sinn und compiliert auch nicht. &quot;typedef xy fahrzeug&quot; heißt, dass du danach fahrzeug als eigenen Typ verwenden kannst. Wenn du das Template nicht explizit instantiierst kann der Compiler nicht wissen welche Instanz von car denn Fahrzeug nun sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756827</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 07 Aug 2009 11:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 10:58:59 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Macht keinen Sin und Compiliert auch nicht.</p>
</blockquote>
<p>Genau das wollte ich hören <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>
<p>Viele Dank an alle für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756846</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Fri, 07 Aug 2009 10:58:59 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Fri, 07 Aug 2009 11:19:53 GMT]]></title><description><![CDATA[<p>MrMilk schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Macht keinen Si<strong>n</strong> und <strong>C</strong>ompiliert auch nicht.</p>
</blockquote>
<p>Genau das wollte ich hören <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>
</blockquote>
<p>Ohweh, ich hätt das so nicht lesen wollen. Memo an mich selbst: nochmal durchlesen was ich geschrieben hab...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756863</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 07 Aug 2009 11:19:53 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Mon, 10 Aug 2009 11:34:56 GMT]]></title><description><![CDATA[<p>Leider muss ich noch einmal dieses alte Thema öffnen.</p>
<p>Momentan macht mir ein typedef zu schaffen. Und zwar sieht es wie folgt aus:</p>
<pre><code class="language-cpp">template &lt;int geschwindigkeit&gt;
struct car&lt;geschwindigkeit, true&gt;
{
 typedef unsigned int type;
};

template &lt;int geschwindigkeit&gt;
struct car&lt;geschwindigkeit, false&gt;
{
 typedef int type;
};
</code></pre>
<p>Ist so etwas möglich? Falls ja wie kann ich dann etwas von dem Typ type deklarieren?</p>
<p>Viele Grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758216</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Mon, 10 Aug 2009 11:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Mon, 10 Aug 2009 12:53:19 GMT]]></title><description><![CDATA[<p>Wieso sollte es nicht?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template&lt;int, bool&gt;
struct Foo // ist bereits &lt;X, false&gt;, wegen der nachfolgenden Spezialisierung
{
  typedef double Type;
};

template&lt;int A&gt;
struct Foo&lt;A, true&gt;
{
  typedef int Type;
};

void bar(double)
{
  std::cout &lt;&lt; &quot;double&quot; &lt;&lt; std::endl;
}

void bar(int)
{
  std::cout &lt;&lt; &quot;int&quot; &lt;&lt; std::endl;
}

int main()
{
  Foo&lt;234, true&gt;::Type first;
  Foo&lt;323, false&gt;::Type second;

  bar(first); // gibt int aus
  bar(second); // gibt double aus

  return 0;
}
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758266</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 10 Aug 2009 12:53:19 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Mon, 10 Aug 2009 13:08:57 GMT]]></title><description><![CDATA[<p>Danke hast wie immer recht!</p>
<p>Leider bleibt noch eine Anfängerfrage offen. Wieso :: und nicht. ?<br />
Es ist doch kein neuer Namespace, oderß</p>
<p>Viele Grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758282</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:08:57 GMT</pubDate></item><item><title><![CDATA[Reply to typedef in Verbindung mit Templates on Mon, 10 Aug 2009 13:22:49 GMT]]></title><description><![CDATA[<p>Der Doppelpunkt ist der allgemeine Scope-Operator (egal ob Namensbereiche, Klassen oder Strukturen). Mit dem Punkt-Operator wird nur auf Member (Variablen bzw. Funktionen) zugegriffen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758298</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:22:49 GMT</pubDate></item></channel></rss>