<?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[Zeiger in Zeiger konvertieren - Templates]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>kaum habe ich mein erstes Problem, komme ich auch gleich mit einem zweiten -:</p>
<p>Wahrscheinlich lässt sich diese Frage nun schneller beantworten, weil es mir eigentlich nur um eine einzige Methode geht, die ich nicht zu deklarieren weiß. Aber vielleicht - habe ich mir gedacht - spielt ja eine Frage im Forum gutes Fachwissen von Euch ein.</p>
<p>Nun, man nehme an, wir haben eine Template-Klasse namens &quot;Test&quot;, die wie folgt aufgebaut ist:</p>
<pre><code class="language-cpp">// ...

template &lt;typename T = void&gt;
class Test
{
public:
  typedef T value_type;

  Test();
  Test(value_type* value);

  void       set(value_type* value);
  value_type get() const;

private:
  value_type* value;
};

/* Template-Methoden: */

template &lt;typename T&gt; Test&lt;T&gt;::Test()
{
  this-&gt;value = std::NULL;
}

template &lt;typename T&gt; Test&lt;T&gt;::Test(value_type* value)
{
  this-&gt;set(value);
}

template &lt;typename T&gt; void Test&lt;T&gt;::set(value_type* value)
{
  this-&gt;value = value;
}

template &lt;typename T&gt; T Test&lt;T&gt;::get() const
{
  return *this-&gt;value;
}
</code></pre>
<p>Meine Frage ist: Wie muss die Methode zur Konvertierung von &quot;Test&lt;irgendwas&gt;* zu Test&lt;&gt;* bzw. Test&lt;void&gt;<em>&quot; lauten? Meine Schwierigkeit ist, dass ich hier einen Zeiger in einen Zeiger umwandeln muss, wofür ich keinerlei Formulierung einer solchen Konvertierungs-Methode kenne. Natürlich kann ich einfach jedes Mal den Konvertierung-Operator (Test&lt;&gt;</em>) verwenden, aber genau das &quot;jedes Mal&quot; möchte ich ja mit einer Klassenmethode automatisieren.</p>
<p>Wenn ich also habe:</p>
<pre><code class="language-cpp">Test&lt;int&gt; x(new int(123));
Test&lt;void&gt;* y = &amp;x;
</code></pre>
<p>, dann soll mir die zweite Zeile keinen Fehler ausspucken. <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>Kennt jemand zufällig eine Lösung dazu, oder zählt mein Vorhaben zu den vielen, aber oft unbekannten No-Gos von C++.</p>
<p>Außerdem bin ich für Kritik zu meinem Programmier-Stil, insbesondere zu meiner obigen Kassendefinition, immer offen.</p>
<p>Gruß Josef</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305749/zeiger-in-zeiger-konvertieren-templates</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:25:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305749.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Jul 2012 10:25:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sat, 07 Jul 2012 10:26:36 GMT]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>kaum habe ich mein erstes Problem, komme ich auch gleich mit einem zweiten -:</p>
<p>Wahrscheinlich lässt sich diese Frage nun schneller beantworten, weil es mir eigentlich nur um eine einzige Methode geht, die ich nicht zu deklarieren weiß. Aber vielleicht - habe ich mir gedacht - spielt ja eine Frage im Forum gutes Fachwissen von Euch ein.</p>
<p>Nun, man nehme an, wir haben eine Template-Klasse namens &quot;Test&quot;, die wie folgt aufgebaut ist:</p>
<pre><code class="language-cpp">// ...

template &lt;typename T = void&gt;
class Test
{
public:
  typedef T value_type;

  Test();
  Test(value_type* value);

  void       set(value_type* value);
  value_type get() const;

private:
  value_type* value;
};

/* Template-Methoden: */

template &lt;typename T&gt; Test&lt;T&gt;::Test()
{
  this-&gt;value = std::NULL;
}

template &lt;typename T&gt; Test&lt;T&gt;::Test(value_type* value)
{
  this-&gt;set(value);
}

template &lt;typename T&gt; void Test&lt;T&gt;::set(value_type* value)
{
  this-&gt;value = value;
}

template &lt;typename T&gt; T Test&lt;T&gt;::get() const
{
  return *this-&gt;value;
}
</code></pre>
<p>Meine Frage ist: Wie muss die Methode zur Konvertierung von &quot;Test&lt;irgendwas&gt;* zu Test&lt;&gt;* bzw. Test&lt;void&gt;<em>&quot; lauten? Meine Schwierigkeit ist, dass ich hier einen Zeiger in einen Zeiger umwandeln muss, wofür ich keinerlei Formulierung einer solchen Konvertierungs-Methode kenne. Natürlich kann ich einfach jedes Mal den Konvertierung-Operator (Test&lt;&gt;</em>) verwenden, aber genau das &quot;jedes Mal&quot; möchte ich ja mit einer Klassenmethode automatisieren.</p>
<p>Wenn ich also habe:</p>
<pre><code class="language-cpp">Test&lt;int&gt; x(new int(123));
Test&lt;void&gt;* y = &amp;x;
</code></pre>
<p>, dann soll mir die zweite Zeile keinen Fehler ausspucken. <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>Kennt jemand zufällig eine Lösung dazu, oder zählt mein Vorhaben zu den vielen, aber oft unbekannten No-Gos von C++.</p>
<p>Außerdem bin ich für Kritik zu meinem Programmier-Stil, insbesondere zu meiner obigen Kassendefinition, immer offen.</p>
<p>Gruß Josef</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230802</guid><dc:creator><![CDATA[pureprogger]]></dc:creator><pubDate>Sat, 07 Jul 2012 10:26:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sat, 07 Jul 2012 11:54:25 GMT]]></title><description><![CDATA[<p>Bist du sicher, dass du einen Zeiger auf ein Test&lt;int&gt; in einen Zeiger auf ein Test&lt;void&gt; convertieren willst und nicht einfach ein Test&lt;int&gt; in ein Test&lt;void&gt;? Zweites könntest du in dieser Art machen:</p>
<pre><code class="language-cpp">template &lt;typename U&gt;
  Test(const Test&lt;U&gt;&amp; other) {/*Was auch immer...*/}

  template &lt;typename U&gt;
  Test&lt;T&gt;&amp; operator=(const Test&lt;U&gt;&amp; other) {/*Was auch immer...*/return *this;}
</code></pre>
<p>Das andere wär' eher etwas für reinterpret_cast und beim Dereferenzieren dann UB.<br />
Achso, deinen Programmierstil find' ich da jetzt eigentlich ganz ok. Die Funktion der Klasse versteh' ich zwar nicht, aber es ist ja wahrscheinlich nur ne Übung. (Versuchst du std::unique_ptr nachzubauen?) Achja, du hast da keine Template-Klasse sondern ein Klassen-Template. <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/2230817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230817</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sat, 07 Jul 2012 11:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sat, 07 Jul 2012 15:54:27 GMT]]></title><description><![CDATA[<p>pureprogger schrieb:</p>
<blockquote>
<p>Wenn ich also habe:</p>
<pre><code class="language-cpp">Test&lt;int&gt; x(new int(123));
Test&lt;void&gt;* y = &amp;x;
</code></pre>
<p>, dann soll mir die zweite Zeile keinen Fehler ausspucken. <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>Dann wirst du Test&lt;int&gt; von Test&lt;void&gt; ableiten müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230859</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 07 Jul 2012 15:54:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sat, 07 Jul 2012 15:55:24 GMT]]></title><description><![CDATA[<p>Adressoperator überladen :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230860</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sat, 07 Jul 2012 15:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sat, 07 Jul 2012 16:01:42 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Adressoperator überladen :p</p>
</blockquote>
<p>Zeig mal, was du dir da vorstellst. Mir fällt nichts sinnvolles ein... <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/2230862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230862</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 07 Jul 2012 16:01:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 13:04:16 GMT]]></title><description><![CDATA[<p>Wie ich schon befürchtet habe, gehört wohl meine Absicht eher zu den Tabus. Tatsächlich - so muss ich zugeben - ist es nicht gerade ratsam &quot;Test&lt;int&gt;<em>&quot; in &quot;Test&lt;void&gt;</em>&quot; umzuwandeln, insbesondere deswegen, weil &quot;void&quot; bei einigen Methoden zu unerlaubten Zugriffen führen könnte.</p>
<p>Mein Fehler war, dass ich - was ja allgemein ziemlich oft vorkommt - eine Frage gestellt habe, die an meinem eigentlichen Problem vorbeigeht:</p>
<p>In Java spricht man von einer sog. uneingeschränkten parametrischen Polymorphie, wenn man den Typ einer generischen Klasse (Klassen-Template) nicht genauer spezifiziert. Das kann z.B. vorkommen, wenn man eine Funktion definiert, die jede Art von Listen als Parameter annehmen soll, also Integer-Listen, Float-Listen usw.</p>
<p>In C++ geht das ja ebenso wunderbar mit dem Schlüsselwort &quot;template&quot;. Nun wurde mir in einigen Büchern eingeimpft, dass ein Funktions-Template für jeden Typ neu generiert wird und damit bei wachsendem Code immer mehr Speicher beansprucht. Und eben das möchte ich vermeiden.</p>
<p>Um zurück zum Beispiel zu kommen. Was ich eigentlich vorhatte, ist folgendes:</p>
<pre><code class="language-cpp">void irgendeineFunktion(Test&lt;void&gt;* x)
{
  ...
}
</code></pre>
<p>Würde nun die automatische Typen-Konversion von &quot;Test&lt;irgendwas&gt;<em>&quot; in &quot;Test&lt;void&gt;</em>&quot; funktionieren, dann hätte ich <strong>eine</strong> Funktion, die jeden Typ von &quot;Test&quot; annehmen könnte.</p>
<p>Um eine solche &quot;unschöne&quot; Konversion zu vermeiden, ist natürlich &quot;template&quot; die Lösung:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
void irgendeineFunktion(Test&lt;T&gt;* x)
{
  ...
}
</code></pre>
<p>Hier würde jedoch theoretisch (es kann sein, dass ich mich irre) der Compiler bei jedem Zeigertyp von Test eine neue Funktion generieren.</p>
<p>Meine eigentliche Frage lautet also: Ist es in diesem Fall möglich, nur eine Funktion generieren zu lassen (wenn ja, wie?), oder ist der Compiler schon schlau genug, das selbst zu erkennen?</p>
<p>Gruß Josef</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231018</guid><dc:creator><![CDATA[pureprogger]]></dc:creator><pubDate>Sun, 08 Jul 2012 13:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 14:09:43 GMT]]></title><description><![CDATA[<p>Generics und Templates sind nunmal zwei komplett verschiedene Dinge. Generics eignen sich nicht für viel mehr als Container-of-Type-T und sind ein Laufzeitmachanismus, zusammengehalten durch dynamische Bindung (aka Interfaces), während Templates ein Compilezeitmechanismus mit impliziten Interfaces (In C++1y vielleicht Concepts) sind. Es ist bei Templates grundsätzlich nicht möglich, für verschiedene Typen den selben Code zu erzeugen, weil diese im allgemeinen in keiner gemeinsamen Vererbunshierarchie sind und Funkionssignaturen nicht exakt festgelegt sind, sondern nur ungefähr passen müssen (implizite Konvertierungen). Deshalb braucht man unter anderem auch Boxing in Java. (Typen müssen von Object abgeleitet sein, das trifft auf Wrapperklassen zu, auf primitive Datentypen nicht)</p>
<p>Abgesehen davon: Warum machst du dir überhaupt Gedanken darüber, wie oft eine Funktion generiert wird? In der heutigen Zeit haben wir so viel Speicher zur Verfügung, da spielt das keine Rolle. Wenn der Compiler das optimieren kann, wird er das von selbst tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231022</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 08 Jul 2012 14:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 18:20:39 GMT]]></title><description><![CDATA[<p>Danke für die Informationen. So genau habe ich den Unterschied zwischen Generics und Templates nun auch nicht gekannt, auch wenn mir bereits klar war, dass Java und C++ zwei grundlegend verschiedene Dinge sind.</p>
<p>Dazu, wieso ich mir darüber Gedanken mache: Allgemein ist es sicherlich nicht schädlich, etwas genauer unter die Lupe zu nehmen und zu hinterfragen. Im Gegenteil, Strukturwissenschaften wie Mathematik wachsen ja gerade durch den Zweifelnden heran (ich verweise dabei auf die Mathematikgeschichte der 30er).</p>
<p>Nun gibt es aber den Zweifelnden, der keine Fachkenntnisse hat und bezweifelt was schon längst bewiesen ist, und den, der seines Faches mächtig ist und das für selbstverständlich hält, das der ungebildete dennoch hinterfragt.</p>
<p>Weil sich eben gezeigt hat, dass ich Generics und Templates noch nicht in Hülle und Fülle begreife, ordne ich mich mal diesbezüglich dem ersteren zu.<br />
Nichtsdestotrotz kann und will ich nicht befürworten, dass man (meinen Ausdruck bitte nicht offensiv auffassen) schlampig programmieren soll, nur weil das Schlampigsein sich für den Endnutzer kaum mehr bemerkbar mache. Natürlich wurde das hier von keinem behauptet noch angedeutet, aber schließlich führt das genau auf eben diesen Trott hinaus, den so viele Programmierer pflegen. Speicherverbrauch hin oder her, dass Festplatten und Arbeitsspeicher alles schlucken können, heißt noch lange nicht, dass wir fraglos literweise Maschinencode verabreichen sollen, wenn auch genauso ein Tropfen mit dem wesentlichsten reichen würde.</p>
<p>Ob nun jemand seinen Programmcode und die Ausgabe optimiert oder nicht, bleibt seine Entscheidung. Aber wenn eine Programmiersprache nicht die nötigen Schnittstellen bietet (jetzt mal abgesehen von inline ASM), die Wünsche des Programmierers zu realisieren, dann ist das beider Fehler: Fehler des Sprachkonzepts, das nicht alle Möglichkeiten eröffnet, und Fehler des Programmierers, der diese Sprache für seine Zwecke gewählt hat. Mir ist es nur leid, ständig diesen Fehler zu begehen.</p>
<p>Ehrlich gesagt, habe ich gerade und auch später nicht die Zeit dazu, das Thema weiter auszuführen oder gar in einer Diskussion vollständig aufzurollen. Ich wollte mich lediglich hinsichtlich meiner Gedanken erklären, die hier auf Verwunderung stoßen.</p>
<p>Gruß Josef</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231062</guid><dc:creator><![CDATA[pureprogger]]></dc:creator><pubDate>Sun, 08 Jul 2012 18:20:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 18:34:44 GMT]]></title><description><![CDATA[<p>Du hast schon recht, dass das executable vermutlich etwas größer wird wenn man ein Funktionstemplate mit verschiedenen Datentypen instanziiert. (Außer der Compiler macht da noch irgendwas tolles, und Compiler machen oft viel tollere Sachen als man denkt.) Da beim RAM-Verbrauch aber die Daten meist viel mehr ausmachen als der code (beim Festplattenverbrauch genauso), würde ich so ein Pointer-Gefrickel nur um ein paar Bytes in der Exe zu sparen erstmal für premature optimization (die ja bekanntlich die root of all evil ist ;)) halten. Klar, wenn du tatsächlich den Fall hast, dass das nötig ist, kann man sowas machen, aber sonst würde ich doch den code, der einfacher zu verstehen, zu warten und zu erweitern ist, erstmal bevorzugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231064</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sun, 08 Jul 2012 18:34:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:22:42 GMT]]></title><description><![CDATA[<p>Ich glaube, ich habe irgendwo mal einen Artikel darüber gelesen, wie viel Speicher generierte Spezialisierungen bei bestimmten Anzahlen verbrauchen, dabei kam AFAIR heraus dass der Compiler da mit optimiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231077</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:22:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:31:44 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28547">@Sone</a>: Interessant. Das bestärkt meine Hoffnung auf</p>
<blockquote>
<p>Außer der Compiler macht da noch irgendwas tolles, und Compiler machen oft viel tollere Sachen als man denkt.</p>
</blockquote>
<p><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/2231083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231083</guid><dc:creator><![CDATA[pureprogger]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:31:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:35:27 GMT]]></title><description><![CDATA[<p>Warum ist dir eigentlich so wichtig, dass das executable klein ist? Das wird hier ja kaum um Größenordnungen gehen sondern eher um ein paar Promille bis Prozent, jenachdem was du machst. 64 intro (Demoscene)? <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/2231085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231085</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:35:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:36:32 GMT]]></title><description><![CDATA[<p>zumal auch solche konvertierungen die du dir erhoffst nicht unbedingt vom compiler genutzt werden, da dieser ja ohne jegliche hürden den typ bestimmt und dafür eine funktions signatur sucht. sprich, es kann sein, dass er trotz deines schönen void* templates doch auf eigene faust andere instantiierungen bildet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231086</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:46:08 GMT]]></title><description><![CDATA[<p>Mir geht es ja nicht um die paar Promille, sondern einfach ums Prinzip. Wenn es schlanker und schneller geht, dann soll es eben schlanker und schneller sein, da spricht ja nichts dagegen. Ich finde es nur schade, wenn man daran gehindert wird. Vielleicht (jetzt kommt der Freud in mir) liegt es ja auch an meinem Hang fürs Axiomatisieren. <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/2231088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231088</guid><dc:creator><![CDATA[pureprogger]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:49:04 GMT]]></title><description><![CDATA[<p>Beim Programmieren geht man nunmal Kompromisse ein. Der klassische ist size vs. speed, in dem Fall denke ich aber eher an Code-Einfachheit vs. size. Und für mich ist eleganter, simpler code erstmal das wichtigste (so ganz axiomatisch ;)), wovon ich nur abweiche wenn es nötig ist. Andere Leute, die den source mal irgendwann bearbeiten wollen/müssen (oder gar man selbst nach einiger Zeit) freuen sich da ja (bzw. ärgern sich ziemlich wenns nicht so ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231090</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:49:04 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:54:53 GMT]]></title><description><![CDATA[<p>pureprogger schrieb:</p>
<blockquote>
<p>Wenn es schlanker und schneller geht, dann soll es eben schlanker und schneller sein</p>
</blockquote>
<p>Dann nimm doch optimierten inline-assembler <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/2231093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231093</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 19:57:53 GMT]]></title><description><![CDATA[<p>Da kann ich dir nur zustimmen, Dobi. Sauberer Code geht natürlich immer vor. <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28547">@Sone</a>: <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/2231096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231096</guid><dc:creator><![CDATA[pureprogger]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 20:59:44 GMT]]></title><description><![CDATA[<p>Mal abgesehen davon sind Templates schneller als Generics...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231109</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 08 Jul 2012 20:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 21:11:05 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Mal abgesehen davon sind Templates schneller als Generics...</p>
</blockquote>
<p>Laut dem was ich im Netz lese, sind Templates eine Form der Unterstützung von Generics.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231110</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 21:14:44 GMT]]></title><description><![CDATA[<p>Darf ich dich bitten, zuerst den Thread zu lesen, bevor du schreibst?</p>
<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Generics und Templates sind nunmal zwei komplett verschiedene Dinge. [...]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2231115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231115</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:14:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 21:20:10 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Darf ich dich bitten, zuerst den Thread zu lesen, bevor du schreibst?</p>
<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Generics und Templates sind nunmal zwei komplett verschiedene Dinge. [...]</p>
</blockquote>
</blockquote>
<p>Vielen Dank, ich habe den Thread gelesen.<br />
Falls du Recht haben solltest, kannst du den <a href="http://de.wikipedia.org/wiki/Generischer_Typ" rel="nofollow">Wikipedia-Eintrag</a> editieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231116</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 21:23:38 GMT]]></title><description><![CDATA[<blockquote>
<p>Bei Programmiersprachen gibt es prinzipiell zwei Ansätze, generische Typen zu unterstützen. Der eine ist es, dass GenerischerTyp&lt;T&gt; für alle Ts denselben Code verwendet und über dynamische Bindung von Methoden spezifische Eigenschaften von T nutzt. Ein anderer Weg, den u.A. C++ geht, ist die Anwendung von Templates. Dabei wird der Typparameter zur Compilierzeit direkt mit dem konkreten Typ ersetzt.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2231117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231117</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger in Zeiger konvertieren - Templates on Sun, 08 Jul 2012 21:35:17 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<blockquote>
<p>Bei Programmiersprachen gibt es prinzipiell zwei Ansätze, generische Typen zu unterstützen. Der eine ist es, dass GenerischerTyp&lt;T&gt; für alle Ts denselben Code verwendet und über dynamische Bindung von Methoden spezifische Eigenschaften von T nutzt. Ein anderer Weg, den u.A. C++ geht, ist die Anwendung von Templates. Dabei wird der Typparameter zur Compilierzeit direkt mit dem konkreten Typ ersetzt.</p>
</blockquote>
</blockquote>
<p>Halt, da hab' ich wohl falsch verstanden. Ich dachte, Generics sind generische Typen. Dabei sind, wie du schon angedeutet hast, Generics und Templates die Umsetzung von generischen Typen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> wurde so im Artikel falsch impliziert.</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231119</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:35:17 GMT</pubDate></item></channel></rss>