<?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[Vector&#x2F;list an template-Funktion übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann mir jemand zeigen, wie den Kopf einer template-Funktion schreiben muss, damit ich einen vector oder eine list übergeben kann?</p>
<p>Bei hakts da irgendwie.<br />
Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310770/vector-list-an-template-funktion-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 05:58:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310770.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2012 16:59:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 16:59:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann mir jemand zeigen, wie den Kopf einer template-Funktion schreiben muss, damit ich einen vector oder eine list übergeben kann?</p>
<p>Bei hakts da irgendwie.<br />
Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272394</guid><dc:creator><![CDATA[templatemensch]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:02:58 GMT]]></title><description><![CDATA[<p>geht das nicht mit std::allocator?</p>
<p>LG, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272397</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:06:37 GMT]]></title><description><![CDATA[<p>Wie genau meinst du das? Wirklich vector/list übergeben, oder vector&lt;T&gt;/list&lt;T&gt;? Weil Letztere sind auch nur Typen, das geht ganz normal mit</p>
<pre><code>template &lt;typename T&gt;
</code></pre>
<p>Falls du wirklich Ersteres meinst, da brauchst du so genannte template templates:</p>
<pre><code>template &lt;template &lt;typename, typename&gt; class Container&gt; // class ist wichtig hier, kann nicht typename sein.
</code></pre>
<p>Verwendung siehe z.B. <a href="http://www.c-plusplus.net/forum/300414" rel="nofollow">http://www.c-plusplus.net/forum/300414</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272399</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:06:37 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:08:43 GMT]]></title><description><![CDATA[<p>Ne, ich mein, dass ich sowohl einen vector&lt;T&gt; als auch eine list&lt;T&gt; übergeben kann. Das bekomme ich nicht hin <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/2272402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272402</guid><dc:creator><![CDATA[templatemensch]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:20:59 GMT]]></title><description><![CDATA[<p>ich weis es nicht sicher, müsste man mal testen. reicht sowas hier?</p>
<pre><code>template&lt;class Container, class T&gt;
void foo(typename Container&lt;T&gt; &amp; );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2272407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272407</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:20:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:29:31 GMT]]></title><description><![CDATA[<p>kann man es nicht einfach so machen? Bei mir kompiliert der Code <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>
<pre><code class="language-cpp">template &lt;typename T&gt; void foo(const T&amp; t) {}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2272410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272410</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:27:25 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>ich weis es nicht sicher, müsste man mal testen. reicht sowas hier?</p>
<pre><code>template&lt;class Container, class T&gt;
void foo(typename Container&lt;T&gt; &amp; );
</code></pre>
</blockquote>
<p>Das ist auf zwei Arten gleichzeitig falsch...</p>
<blockquote>
<p>Ne, ich mein, dass ich sowohl einen vector&lt;T&gt; als auch eine list&lt;T&gt; übergeben kann. Das bekomme ich nicht hin <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>Ja, also doch die einfache Variante. Wo ist das Problem?</p>
<pre><code>template &lt;typename C&gt;
void reverse(C&amp; c)
{
  std::reverse(c.begin(), c.end());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2272412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272412</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:27:25 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:34:23 GMT]]></title><description><![CDATA[<p>@cooky: was da heisst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272419</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:34:23 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:39:30 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>@cooky: was da heisst?</p>
</blockquote>
<p>Du hast das auf gleich mehrere Weisen verdreht. Sieh dir cookys erste Antwort an, wie das richtig geht. Jedenfalls ist bei dir sowohl die Erwartung eines Klassentemplates als Templateparameter falsch umgesetzt, als auch die letztendliche Anwendung dieses übergebenen Klassentemplates.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272425</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 17:48:34 GMT]]></title><description><![CDATA[<p>ok, hatte es in seinem link nur übersehen. aber klar, ganz oben stand es ja xD</p>
<p>d.h. also:</p>
<pre><code>template&lt;class &lt;typename&gt; Container&gt;
func(Container c); // kann hier vector&lt;T&gt; sein?!

int main()
{
    vector&lt;CFoo&gt; v;
    list&lt;CFoo&gt; l;
    deque&lt;CFoo&gt; d;

    func(v);
    func(l):
    func(d);

    return 0x0;
}
</code></pre>
<p>das müsste klappen?</p>
<p>für mich sieht dieses class &lt;typename&gt; halt komisch (ungewohnt) aus.<br />
und wieso ist hier class != typename? das war doch in den template klammern sonst nie so?! (nur bei der typdefinition in funktionen wo der typ von indirekt von einem templateargument abhängig ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272437</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 19 Nov 2012 17:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 18:43:32 GMT]]></title><description><![CDATA[<p>Fast. Jetzt ist das Problem, dass vector natürlich ein Template mit zwei Parametern ist (den Allocator nicht vergessen!), der passt nicht zu der Vorgabe mit eines einparametrigen Templates.</p>
<blockquote>
<p>und wieso ist hier class != typename? das war doch in den template klammern sonst nie so?!</p>
</blockquote>
<p>Tja, ist eben einfach so (Standard 14.1,1). Hat vermutlich historische Gründe (<a href="http://blogs.msdn.com/b/slippman/archive/2004/08/11/212768.aspx" rel="nofollow">ganz ganz früher gab es nur class</a>). Kann man auch verteidigen, da ein template niemals ein primitiver Typ ist, sondern immer eine Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272463</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Nov 2012 18:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to Vector&#x2F;list an template-Funktion übergeben on Mon, 19 Nov 2012 21:15:34 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Kann man auch verteidigen, da ein template niemals ein primitiver Typ ist, sondern immer eine Klasse.</p>
</blockquote>
<p>Das dürfte sich mit Template Aliases ändern... <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="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272507</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 19 Nov 2012 21:15:34 GMT</pubDate></item></channel></rss>