<?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 Fehler]]></title><description><![CDATA[<p>Hi!</p>
<p>ich benutze &quot;Templates&quot; nicht oft und habe daher einen Fehler, den ich zu beheben nicht in der Lage bin.</p>
<p>Folgender Programmcode:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

template&lt;class T&gt;
T getValue(string foo, int bar){
	switch(bar){
	case 1:
		return (int) 5;
	case 2:
		return (string) &quot;lalala&quot;;
	}
}

int main(void){
	string qry1 = &quot;foobar1&quot;;
	string qry2 = &quot;foobar2&quot;;

	int res1 = getValue(qry1, 1);
	cout &lt;&lt; res1 &lt;&lt; endl;

	string res2 = getValue(qry2, 2);
	cout &lt;&lt; res2 &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Die Fehlerausgabe sagt, dass die Funktion &quot;getValue&quot; nicht gefunden wird.</p>
<blockquote>
<p>template.cpp: In function ‘int main()’:<br />
template.cpp:23: error: no matching function for call to ‘getValue(std::string&amp;, int)’<br />
template.cpp:27: error: no matching function for call to ‘getValue(std::string&amp;, int)’</p>
</blockquote>
<p>ich wäre sehr dankbar, wenn mir jemand einen Tipp geben könnte.</p>
<p>viele Grüße<br />
Sdy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247037/template-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 19:22:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247037.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Aug 2009 09:22:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 09:22:24 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>ich benutze &quot;Templates&quot; nicht oft und habe daher einen Fehler, den ich zu beheben nicht in der Lage bin.</p>
<p>Folgender Programmcode:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

template&lt;class T&gt;
T getValue(string foo, int bar){
	switch(bar){
	case 1:
		return (int) 5;
	case 2:
		return (string) &quot;lalala&quot;;
	}
}

int main(void){
	string qry1 = &quot;foobar1&quot;;
	string qry2 = &quot;foobar2&quot;;

	int res1 = getValue(qry1, 1);
	cout &lt;&lt; res1 &lt;&lt; endl;

	string res2 = getValue(qry2, 2);
	cout &lt;&lt; res2 &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Die Fehlerausgabe sagt, dass die Funktion &quot;getValue&quot; nicht gefunden wird.</p>
<blockquote>
<p>template.cpp: In function ‘int main()’:<br />
template.cpp:23: error: no matching function for call to ‘getValue(std::string&amp;, int)’<br />
template.cpp:27: error: no matching function for call to ‘getValue(std::string&amp;, int)’</p>
</blockquote>
<p>ich wäre sehr dankbar, wenn mir jemand einen Tipp geben könnte.</p>
<p>viele Grüße<br />
Sdy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755552</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 09:22:24 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 09:40:24 GMT]]></title><description><![CDATA[<p>Ein Template ist eine generische Schablone, in die der Compiler <em>während des Kompilierens</em> konkrete Typen einsetzt und daraus Code erzeugt.<br />
Was du hier versuchst, kann nicht funktionieren, weil der Rückgabetyp erst <em>während der Laufzeit des Programms</em> ermittelt werden soll, wenn die Codeerzeugung schon vorbei ist.</p>
<p>Du müsstest dein Konstrukt also so umbauen, dass der Compiler entscheiden kann, welchen Typ du willst.</p>
<p><a href="http://www.cplusplus.com/doc/tutorial/templates/" rel="nofollow">http://www.cplusplus.com/doc/tutorial/templates/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755566</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Wed, 05 Aug 2009 09:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 09:46:39 GMT]]></title><description><![CDATA[<p>hmm...verdammt!</p>
<p>kennst du eine andere methode, wie ich verschiedene werte aus einer funktion zurückgeben kann?! aber nicht sowas wie struct, in dem alle werte gelistet sind o.a..</p>
<p>Ansonsten bleibt mir ja nichts anderes übrig, als für jeden datentypen ne eigene funktion zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755570</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 09:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 09:48:53 GMT]]></title><description><![CDATA[<p>Registrierter Troll hat dir die Ursache ja schon erklärt, hier ein Vorschlag, wie es funktioniert. Das Beispiel macht so natürlich nicht mehr viel Sinn, angemessener wäre es wohl eine Templatespezialisierung für die Fälle zu schreiben, in denen der zweite Parameter 1 oder 2 ist, aber du solltest erstmal besser noch ein oder zwei Stunden normale Templates lernen, bevor du sowas anfängst.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

template&lt;class T&gt;
T getValue(string foo, int bar){
	switch(bar){
	case 1:
		return (int) 5;
	case 2:
		return (string) &quot;lalala&quot;;
	}
}

int main(void){
	string qry1 = &quot;foobar1&quot;;
	string qry2 = &quot;foobar2&quot;;

	int res1 = getValue&lt;int&gt;(qry1, 1);
	cout &lt;&lt; res1 &lt;&lt; endl;

	string res2 = getValue&lt;string&gt;(qry2, 2);
	cout &lt;&lt; res2 &lt;&lt; endl;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1755571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755571</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Aug 2009 09:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 09:56:27 GMT]]></title><description><![CDATA[<p>naja, dein expliziter aufruf bezieht sich doch auf die argumente! das ist ja nicht sinn der sache...die bleiben ja immer gleich! es soll ja nur der rückgabewert entsprechend geändert werden! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>ich such erst mal weiter und guck mir nochmal die template sache an...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755579</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 09:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:06:18 GMT]]></title><description><![CDATA[<p>so wie ich das sehe, geht das nicht mit templates! selbst spezialisierte templates helfen da nicht weiter. es bleibt ja nicht bei den beiden aufrufen (1 und 2), sondern es werden eben noch mehr.</p>
<p>Ich wollte nur die eigentliche Arbeit, die ja immer die gleiche ist, in eine seperate funktion verlegen und dann einen bestimmten wert zurückgeben.</p>
<p>Aber nun bleibt ja nichts anderes übrig, als für jeden fall eine eigene funktion zu schreiben! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>vielen dank für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755594</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:34:43 GMT]]></title><description><![CDATA[<p>sheddy schrieb:</p>
<blockquote>
<p>so wie ich das sehe, geht das nicht mit templates! selbst spezialisierte templates helfen da nicht weiter. es bleibt ja nicht bei den beiden aufrufen (1 und 2), sondern es werden eben noch mehr.</p>
<p>Ich wollte nur die eigentliche Arbeit, die ja immer die gleiche ist, in eine seperate funktion verlegen und dann einen bestimmten wert zurückgeben.</p>
<p>Aber nun bleibt ja nichts anderes übrig, als für jeden fall eine eigene funktion zu schreiben! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Wenn du uns erklärst was du <em>wirklich</em> machen möchtest und nicht irgendwelche unklaren Beispiele wie das obige lieferst, kann dir geholfen werden. Wenn nicht, dann musst du selbst weitertüfteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755630</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:44:19 GMT]]></title><description><![CDATA[<p>hmm..dachte das wäre klar gewesen - sorry.</p>
<p>Es soll eine Funktion angeboten werden, die einen Wert zurück gibt. Der Aufrufer der Funktion weiß den Datentypen des Rückgabewerts.</p>
<p>Der Aufrufer möchte zu einer Eigenschaft den Wert haben. Er weiß, dass der Typ der Eigenschaft &quot;int&quot; ist. Also ruft er &quot;int getInt(string)&quot; auf. Möchte er den Wert einer Eigenschaft, die den Typ &quot;float&quot; hat, so ruft er die Funktion &quot;float getFloat(string)&quot; auf.</p>
<p>Mein Versuch war es nun, da vieles in der Funktionen gleich ist und sich nur der Wert, der am Ende zurückgegeben werden soll, sich verändert (float, int, double, etc.) wollte ich alles in EINE Funktion stecken.</p>
<p>Der zweite Parameter meiner template-Funktion sollte den Typen des Datentypen spezifizieren, den ich in der Funktion mit einer Abfrage (if-selse, switch ...) abfragen würde und dementsprechend dann den gewünschten Wert mit dem entsprechenenden Datentypen zurückgebe.</p>
<p>Im Ganzen:</p>
<p>Statt</p>
<p>int getInt(string);<br />
float getFloat(string);</p>
<p>soll</p>
<p>*bestimmter Datentyp* getVal(string, int)</p>
<p>ich hoffe, es ist ein wenig klarer geworden.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755636</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:50:36 GMT]]></title><description><![CDATA[<p>Sprich, du brauchst so etwas wie den Datentyp Variant? Eine solcher Datentyp Variant kann verschiedene Datentypen aufnehmen. Siehe auch: <a href="http://de.wikipedia.org/wiki/Variant" rel="nofollow">http://de.wikipedia.org/wiki/Variant</a> und <a href="http://www.gamedev.net/reference/articles/article2029.asp" rel="nofollow">http://www.gamedev.net/reference/articles/article2029.asp</a> .</p>
<p>Gruß Kimmi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755640</guid><dc:creator><![CDATA[kimmi]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:50:36 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:53:27 GMT]]></title><description><![CDATA[<p>sheddy schrieb:</p>
<blockquote>
<p>hmm..dachte das wäre klar gewesen - sorry.</p>
<p>Es soll eine Funktion angeboten werden, die einen Wert zurück gibt. Der Aufrufer der Funktion weiß den Datentypen des Rückgabewerts.</p>
<p>Der Aufrufer möchte zu einer Eigenschaft den Wert haben. Er weiß, dass der Typ der Eigenschaft &quot;int&quot; ist. Also ruft er &quot;int getInt(string)&quot; auf. Möchte er den Wert einer Eigenschaft, die den Typ &quot;float&quot; hat, so ruft er die Funktion &quot;float getFloat(string)&quot; auf.</p>
<p>Mein Versuch war es nun, da vieles in der Funktionen gleich ist und sich nur der Wert, der am Ende zurückgegeben werden soll, sich verändert (float, int, double, etc.) wollte ich alles in EINE Funktion stecken.</p>
<p>Der zweite Parameter meiner template-Funktion sollte den Typen des Datentypen spezifizieren, den ich in der Funktion mit einer Abfrage (if-selse, switch ...) abfragen würde und dementsprechend dann den gewünschten Wert mit dem entsprechenenden Datentypen zurückgebe.</p>
<p>Im Ganzen:</p>
<p>Statt</p>
<p>int getInt(string);<br />
float getFloat(string);</p>
<p>soll</p>
<p>*bestimmter Datentyp* getVal(string, int)</p>
<p>ich hoffe, es ist ein wenig klarer geworden.</p>
<p>mfg</p>
</blockquote>
<p>Das geht mit <code>void *</code> als Rückgabetyp. Allerdings musst du dann jedes mal eine Typ-Umwandlung vornehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755645</guid><dc:creator><![CDATA[BBBB]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:55:58 GMT]]></title><description><![CDATA[<p>ich kannte den typen bis eben noch nicht, ABER genau sowas brauche ich <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>aber anscheinend gibt es sowas nicht in C bzw. C++. Und Zeiger hin- und hercasten wollte ich eigentlich vermeiden.</p>
<p>trotzdem danke für die hilfe....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755649</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 10:56:53 GMT]]></title><description><![CDATA[<p>Wo ist in deinen Augen der Unterschied zwischen</p>
<pre><code class="language-cpp">int getInt(string);
float getFloat(string);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
T get(string);
</code></pre>
<p>?</p>
<p>Du kannst es dann je nachdem was du brauchst mit get&lt;int&gt;(&quot;bla&quot;), get&lt;string&gt;(&quot;blubb&quot;) usw. aufrufen.</p>
<p>Allerdings ist das alles relativ witzlos wenn du dann eh die ganze Funktion nur als großen switch baust - im Grunde hast du dann nämlich sowas:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T getValue(string foo){
    switch(/*type-abhängige konstante*/){
    case /*Int-ID*:
        return getInt(foo);
    case /*String-ID*/:
        return getString(foo);
    }
}
</code></pre>
<p>und landest am Ende doch wieder bei getInt, getString usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755650</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 05 Aug 2009 10:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 11:00:16 GMT]]></title><description><![CDATA[<p>Ein Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

enum Type
{
	TYPE_INT,
	TYPE_STRING
};

void *myFunction(Type type)
{
	switch (type)
	{
		case TYPE_INT:
			return new int(100);
			break;

		case TYPE_STRING:
			return new std::string(&quot;Hey!&quot;);
			break;
	}

	return NULL;
}

int main()
{
	void *ptr = myFunction(TYPE_INT);

	if (ptr != NULL)
	{
		std::cout &lt;&lt; *(int *)ptr &lt;&lt; std::endl;
	}

	delete ptr;

	ptr = myFunction(TYPE_STRING);

	if (ptr != NULL)
	{
		std::cout &lt;&lt; *(std::string *)ptr &lt;&lt; std::endl;
	}

	delete ptr;
}
</code></pre>
<p>Wird allerdings sehr spaßig (Casting, Speicherfreigabe).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755654</guid><dc:creator><![CDATA[BBBB]]></dc:creator><pubDate>Wed, 05 Aug 2009 11:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 11:09:31 GMT]]></title><description><![CDATA[<p>Ich werfe mal noch <a href="http://www.boost.org/doc/libs/1_39_0/doc/html/any.html" rel="nofollow">boost::any</a> in den Raum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755661</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Wed, 05 Aug 2009 11:09:31 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 11:18:24 GMT]]></title><description><![CDATA[<p>Fassen wir das nochmal zusammen:</p>
<ol>
<li>Du hast Benutzer, die Werte haben wollen.</li>
<li>Die Benutzer wissen, was sie haben wollen.</li>
<li>Es gibt einen Teil, der für jeden Rückgabewert immer gleich ist.</li>
<li>Es gibt einen Teil, der unterscheidet sich aufgrund des Rückgabetypen.</li>
</ol>
<p>Hättest Du unterschiedliche Funktionen, würde der Benutzer ja wissen, welche Funktion er aufrufen müsste (siehe Punkt 2).<br />
Wieso dann nicht so?</p>
<pre><code class="language-cpp">ReturnType somethingCommonForAll(...){...}

float getFloat(...)
{
   //...
   ReturnType var = somethingCommonForAll(...);
   //...
   return floatVal;
}

int getInt(...)
{
   //...
   ReturnType var = somethingCommonForAll(...);
   //...
   return intVal;
}
//usw.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1755664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755664</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 05 Aug 2009 11:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 14:46:33 GMT]]></title><description><![CDATA[<p>Tachyon hat verstanden, was ich meine! genau so! bei pumuckls lösung ist eben genau dieses &quot;/*type-abhängige konstante*/&quot; das problem! der funktion muss ja schon eine art signal mitgegeben werden, um welchen typ es sich handelt.<br />
und dann funktioniert schon nicht mehr der explizite aufruf der template funktion.</p>
<p>und so wie ich das die letzten posts gesagt habe und tachyon vorgeschlagen hat, habe ich es auch jetzt gemacht! im endeffekt auch sinnvoller für den benutzer, der dann die genaue funktion aufruft!</p>
<blockquote>
<p>Hättest Du unterschiedliche Funktionen, würde der Benutzer ja wissen, welche Funktion er aufrufen müsste (siehe Punkt 2).</p>
</blockquote>
<p>Und da habe ich gedacht, dass EINE funktion reichen würde, die alles bearbeitet. so muss ich jetzt in jeder funktion den &quot;gleichen&quot; quellcode benutzen. im groben und ganzen unterscheiden sich die funktionen kaum - eben bis auf den rückgabewert.<br />
ich arbeite mit den xml-frameworks xerces und xalan und da muss vorher ein wenig mehr vorarbeit geleistet werden, um dann eine gezielte funktion zu nutzen und wollte die arbeit auf eine funktion beschränken!<br />
daher auch mein recht kurzes beispiel am anfang des threads, um den ganzen &quot;rattenschwanz&quot; der xml-frameworks rauszulassen.</p>
<p>Im ganzen war es eigentlich eine &quot;optimerung&quot; bzw. faulheit meinerseits <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/1755827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755827</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 14:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 16:06:18 GMT]]></title><description><![CDATA[<p>sheddy schrieb:</p>
<blockquote>
<p>Im ganzen war es eigentlich eine &quot;optimerung&quot; bzw. faulheit meinerseits <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>Das Vermeiden von doppeltem Code ist allgemein sehr sinnvoll, weil es Änderungen erleichtert und Fehler beim Duplizieren gar nicht erst auftreten können. Das man zusätzlich noch Schreibarbeit spart ist natürlich auch ein willkommener Effekt <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/1755870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755870</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Aug 2009 16:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to Template Fehler on Wed, 05 Aug 2009 16:08:02 GMT]]></title><description><![CDATA[<p>danke, das wollte ich sagen <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/1755871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755871</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Wed, 05 Aug 2009 16:08:02 GMT</pubDate></item></channel></rss>