<?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[Templates]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine Template-Klasse A&lt;T&gt; erstellt und möchte nun in einer Liste Objekte verschiedener Datentypen gemeinsam verwalten.</p>
<p>Folgender Code kompiliert jedoch nicht, da der Datentyp, den die Liste verwalten soll schon bekannt sein soll. Hat irgendwer eine Idee wie man das lösen kann?</p>
<pre><code>template&lt;typename T&gt; class A
{
	public:
		A(){ }

		A(T t) : data(t) { }

		~A() { }

		void doSomething() { }

		T get() { return data; }

	private:
		T data; 

};

int main(int argc, char* argv[])
{
	A&lt;int&gt; a(1); 
	A&lt;float&gt; f(1.0f); 
	A&lt;bool&gt; b(false); 

	std::list&lt;A&amp;&gt; list; 

	list.push_back(a); 
	list.push_back(f); 
	list.push_back(b); 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/292487/templates</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 21:02:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292487.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Sep 2011 22:41:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates on Sat, 10 Sep 2011 22:41:48 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine Template-Klasse A&lt;T&gt; erstellt und möchte nun in einer Liste Objekte verschiedener Datentypen gemeinsam verwalten.</p>
<p>Folgender Code kompiliert jedoch nicht, da der Datentyp, den die Liste verwalten soll schon bekannt sein soll. Hat irgendwer eine Idee wie man das lösen kann?</p>
<pre><code>template&lt;typename T&gt; class A
{
	public:
		A(){ }

		A(T t) : data(t) { }

		~A() { }

		void doSomething() { }

		T get() { return data; }

	private:
		T data; 

};

int main(int argc, char* argv[])
{
	A&lt;int&gt; a(1); 
	A&lt;float&gt; f(1.0f); 
	A&lt;bool&gt; b(false); 

	std::list&lt;A&amp;&gt; list; 

	list.push_back(a); 
	list.push_back(f); 
	list.push_back(b); 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2117768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117768</guid><dc:creator><![CDATA[hanzpetr]]></dc:creator><pubDate>Sat, 10 Sep 2011 22:41:48 GMT</pubDate></item><item><title><![CDATA[Reply to Templates on Sat, 10 Sep 2011 22:47:49 GMT]]></title><description><![CDATA[<p>Die Typen A&lt;int&gt; und A&lt;bool&gt; haben nichts miteinander zu tun. Und A alleine geht gar nicht (und hätte auch wieder nichts mit A&lt;int&gt; und so zu tun). Und Referenzen kannst Du in keinen Container stopfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117770</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 10 Sep 2011 22:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to Templates on Sun, 11 Sep 2011 00:17:55 GMT]]></title><description><![CDATA[<p>Grundlegend: A ist keine Template-Klasse, sondern eine Klassen-Template bzw. Klassenvorlage. Es handelt sich also nicht um einen Typen, sondern um eine Schablone, aus der der Compiler nach Bedarf Typen erzeugen kann.</p>
<p>Was genau hast du eigentlich vor? Außerhalb von Sprachinterpretern o.ä. kann man sich die elende Fummelei, in die man mit Laufzeittypverwaltung unweigerlich läuft, mit etwas Überlegung in aller Regel sparen. Wenn du wirklich Werte hast, deren Typ erst zur Laufzeit feststeht, sind <a href="http://www.boost.org/doc/libs/1_47_0/doc/html/variant.html" rel="nofollow">Boost.Variant</a> und <a href="http://www.boost.org/doc/libs/1_47_0/doc/html/any.html" rel="nofollow">Boost.Any</a> einen Blick wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117779</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 11 Sep 2011 00:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Templates on Sun, 11 Sep 2011 09:21:52 GMT]]></title><description><![CDATA[<p>Ich weiß jetzt nicht genau, was du erreichen willst. Hast du schon mal etwas von Polymorphie gehört?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117808</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 11 Sep 2011 09:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Templates on Mon, 12 Sep 2011 20:06:55 GMT]]></title><description><![CDATA[<p>Leite deine Templates von einer Nicht-Template-Klasse ab und packe diese in die Liste.<br />
Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118442</guid><dc:creator><![CDATA[Helmut.Jakoby]]></dc:creator><pubDate>Mon, 12 Sep 2011 20:06:55 GMT</pubDate></item></channel></rss>