<?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 und Klassen]]></title><description><![CDATA[<p>Hallo<br />
und wieder mal ein problem das mich schier verzweifeln lässt !<br />
ich habe einen header mit klasse in dem sich ein template befindet nun wird die funktion in einem cpp initalisiert und über main aufgerufen nur bekomm ich als fehler immer wieder linker error er findet das symbol nicht !? wäre nett wenn mir jemand helfen könnte</p>
<p>HeaderFile</p>
<pre><code>class SortElement {
public:    
    void Print(TContainerItor first, TContainerItor last, std::ostream &amp;out);
    TVectOfPairs mVect;
private:
};
</code></pre>
<p>CPP File</p>
<pre><code>template&lt;typename TContainerItor&gt; void SortElement::Print(TContainerItor first, TContainerItor last, std::ostream &amp;out) {
    std::copy(first, last, std::ostream_iterator&lt;TPairOfValues&gt;(out, &quot; &quot;));
}
</code></pre>
<p>main</p>
<pre><code>Elements.Print(Elements.mVect.begin(),Elements.mVect.end(), std::cout);
</code></pre>
<p>erkennt der compiler um welchen typen es sich handelt oder muss ich beim aufruf der funktion den typen noch mitgeben ? und wenn ja wie ?</p>
<p>herzlichen dank schon mal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316894/templates-und-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 12:00:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316894.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 May 2013 11:02:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:02:35 GMT]]></title><description><![CDATA[<p>Hallo<br />
und wieder mal ein problem das mich schier verzweifeln lässt !<br />
ich habe einen header mit klasse in dem sich ein template befindet nun wird die funktion in einem cpp initalisiert und über main aufgerufen nur bekomm ich als fehler immer wieder linker error er findet das symbol nicht !? wäre nett wenn mir jemand helfen könnte</p>
<p>HeaderFile</p>
<pre><code>class SortElement {
public:    
    void Print(TContainerItor first, TContainerItor last, std::ostream &amp;out);
    TVectOfPairs mVect;
private:
};
</code></pre>
<p>CPP File</p>
<pre><code>template&lt;typename TContainerItor&gt; void SortElement::Print(TContainerItor first, TContainerItor last, std::ostream &amp;out) {
    std::copy(first, last, std::ostream_iterator&lt;TPairOfValues&gt;(out, &quot; &quot;));
}
</code></pre>
<p>main</p>
<pre><code>Elements.Print(Elements.mVect.begin(),Elements.mVect.end(), std::cout);
</code></pre>
<p>erkennt der compiler um welchen typen es sich handelt oder muss ich beim aufruf der funktion den typen noch mitgeben ? und wenn ja wie ?</p>
<p>herzlichen dank schon mal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324662</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Mon, 20 May 2013 11:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:13:58 GMT]]></title><description><![CDATA[<p>So wie Deine Klassendeklaration aussieht ist Print() nichtmal ein Template. Wobei Du auch Template-Methoden nicht einfach so in einer .cpp-Datei definieren kannst, sondern nur in der Klasse, oder außerhalb der Klasse, jedoch im Header File.<br />
Oder Du erstellst Dir eine Datei mit Endung &quot;.impl&quot;, wobei Du dann doch noch ein Template in einer anderen Datei definieren kannst. Sieht dann ungefähr so aus:</p>
<p>Header:</p>
<pre><code class="language-cpp">class XYZ{
    template&lt;typename Type&gt;
    void foo(const Type&amp; );
};

#include &quot;myimpl.impl&quot;
</code></pre>
<p>.impl-Datei:</p>
<pre><code class="language-cpp">template&lt;typename Type&gt;
void XYZ::foo(const Type&amp; ){
    ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2324666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324666</guid><dc:creator><![CDATA[Omen2]]></dc:creator><pubDate>Mon, 20 May 2013 11:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:21:27 GMT]]></title><description><![CDATA[<p>ok... danke soweit werd ich dann ausprobieren und wenn ich die klasse welche mehrer funktionen beinhaltet als<br />
template &lt;typename T&gt; calss bla {<br />
}</p>
<p>definiere können dann andere funktion keine template variablen besitzen ? und kann ich es dann im cpp initialisieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324671</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Mon, 20 May 2013 11:21:27 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:25:53 GMT]]></title><description><![CDATA[<p>Für Templates gilt hier stets die gleiche Regel.</p>
<p>Wenn Du eine Template-Klasse hast, kannst Du diese Klasse nur im Header, oder in einer .impl-Datei definieren. <strong>Auch</strong> wenn die Template-Klasse keine Template-Methoden besitzt.</p>
<p>Und ja, eine Template-Klasse darf auch eine Template-Methode besitzen. Sieht dann so aus:</p>
<pre><code class="language-cpp">template&lt;typename A&gt;
class XYZ{
    template&lt;typename B&gt;
    void foo(const B&amp; );
};

template&lt;typename A&gt;
template&lt;typename B&gt;
class XYZ&lt;A&gt;::foo(const B&amp; ){
    ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2324673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324673</guid><dc:creator><![CDATA[Omen2]]></dc:creator><pubDate>Mon, 20 May 2013 11:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:30:25 GMT]]></title><description><![CDATA[<p>Bei meinem Beispiel: Ersetze in Zeile 9 das Schlüsselwort class durch void. <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="😃"
    /><br />
Die Beispiele die ich hier vorzeige sind dahingekritzelt und ungetestet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324674</guid><dc:creator><![CDATA[Omen2]]></dc:creator><pubDate>Mon, 20 May 2013 11:30:25 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:31:55 GMT]]></title><description><![CDATA[<p>ahh okey ich seh ein licht am ende des tunnels... noch eine frage hat die endung irgend einen einfluss .impl oder könnte das jede endung haben ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324675</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Mon, 20 May 2013 11:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:43:51 GMT]]></title><description><![CDATA[<p>Omen2 schrieb:</p>
<blockquote>
<p>Bei meinem Beispiel: Ersetze in Zeile 9 das Schlüsselwort class durch void. <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="😃"
    /><br />
Die Beispiele die ich hier vorzeige sind dahingekritzelt und ungetestet.</p>
</blockquote>
<p>Danke das hab ich dann doch verstanden <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="😉"
    /> und wenn nun die klasse noch eine membervariable hat die als typ ein template hat ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324679</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Mon, 20 May 2013 11:43:51 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:44:14 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>ahh okey ich seh ein licht am ende des tunnels... noch eine frage hat die endung irgend einen einfluss .impl oder könnte das jede endung haben ?</p>
</blockquote>
<p>Sollte *.impl sein. Es gibt auch noch andere Dateiendungen die das Gleiche bewerkstelligen, aber diese kannst Du auch gut selber googeln <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/2324680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324680</guid><dc:creator><![CDATA[Omen2]]></dc:creator><pubDate>Mon, 20 May 2013 11:44:14 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:47:59 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>und wenn nun die klasse noch eine membervariable hat die als typ ein template hat ?</p>
</blockquote>
<p>Ja, was soll damit sein? Wenn die Frage auf &quot;funktioniert das?&quot; hindeutet, dann ja.</p>
<p>Sowas wie</p>
<pre><code class="language-cpp">template&lt;typename Type&gt;
class XYZ{
    std::vector&lt;Type&gt; vector;
};
</code></pre>
<p>kompiliert einwandfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324681</guid><dc:creator><![CDATA[Omen2]]></dc:creator><pubDate>Mon, 20 May 2013 11:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:48:45 GMT]]></title><description><![CDATA[<p>ok thx damit sind alle unklarheiten beseitigt <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/2324682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324682</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Mon, 20 May 2013 11:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 11:49:34 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>Danke das hab ich dann doch verstanden <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="😉"
    /> und wenn nun die klasse noch eine membervariable hat die als typ ein template hat ?</p>
</blockquote>
<p>Ein Template ist kein Typ, sondern ein Template. Ein Template musst du spezialisieren um einen Typ zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324683</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 11:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 13:51:50 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Ein Template musst du spezialisieren um einen Typ zu haben.</p>
</blockquote>
<p>instanziieren <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/2324712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324712</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 20 May 2013 13:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 14:27:05 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Ein Template musst du spezialisieren um einen Typ zu haben.</p>
</blockquote>
<p>instanziieren <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>
<pre><code>template &lt;...&gt; class T;
</code></pre>
<p>T ist das Template, <code>T&lt;4&gt;</code> o.ä. wäre die Spezialisierung. Du spezialisierst das Template mit einer Parameterliste und hast den Typ - die Klasse T&lt;4&gt;.</p>
<p>Oder was hab ich da falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324726</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 14:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 14:34:45 GMT]]></title><description><![CDATA[<p>Unter Template-Spezialisierungen verstehe ich zusätzliche Definitionen des Klassentemplates, bei denen einer oder mehrere Template-Parameter bereits festgelegt sind.</p>
<pre><code>// Allgemeiner Fall
template &lt;typename T, int N&gt;
struct X {};

// Partielle Template-Spezialisierung
// Ein Teil der Template-Parameter ist eingesetzt
template &lt;typename T&gt;
struct X&lt;T, 5&gt; {};

// Vollständige Template-Spezialisierung
// Alle Template-Parameter sind eingesetzt
template &lt;&gt;
struct X&lt;int, 5&gt; {};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2324730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324730</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 20 May 2013 14:34:45 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 14:38:38 GMT]]></title><description><![CDATA[<p>Ahh, du hast Recht:</p>
<blockquote>
<p>An instantiated template specialization can be either implicitly instantiated for a given argument<br />
list or be explicitly instantiated. A specialization is a class, function, or class member that is either<br />
instantiated or explicitly specialized.</p>
</blockquote>
<p>Instantiierung ist der Prozess, um eine Spezialisierung zu erzeugen - explizite Spezialisierung gibt die Spezialisierung vor.</p>
<p>Dann hast du Recht. Ich hätte das dranhängen einer Parameterliste an einen Templatenamen als spezialisieren bezeichnet, aber das ist dann verwirrend wenn man von expliziter Spezialisierung redet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324732</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 14:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 14:39:18 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Instantiierung ist der Prozess, um eine Spezialisierung zu erzeugen</p>
</blockquote>
<p>Hä?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324733</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 20 May 2013 14:39:18 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 15:07:59 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Instantiierung ist der Prozess, um eine Spezialisierung zu erzeugen</p>
</blockquote>
<p>Hä?</p>
</blockquote>
<p>Lies das Zitat. Eine instantiierte Spezialisierung ist eine vom Compiler generierte Spezialisierung eines Templates. Eine Spezialisierung kann aber auch durch eine explizite Spezialisierung vom User vorgegeben werden, dann muss der Compiler diese Spezialisierung nicht instantiieren.</p>
<pre><code>template&lt;typename&gt; class T {}; // Template-Deklaration eines Klassentemplate T.

template&lt;&gt; class T&lt;int&gt; {}; // Explizite Spezialisierung.

template class T&lt;char&gt;; // Explizite Instantiierung - die Instantiierung von T&lt;char&gt; wird erzwungen. 
                        // Da meine explizite Inst. nicht mit extern beginnt, ist es eine explizite Instantiierungsdefinition - 
                        // daher würden theoretisch alle Member von T&lt;char&gt; ebenfalls instantiiert werden.

T&lt;T&lt;int&gt;&gt; t; // Implizite Instantiierung: Genau hier wird vom Compiler anhand der simple-template-id festgestellt, dass die vollständige Definition der Spezialisierung T&lt;int&gt; benötigt wird.
          // &gt;&gt; [...] the class template specialization is implicitly instantiated when the specialization is referenced in a context that requires a completely-defined object type [...]

T&lt;char&gt; t2; // Da bereits eine Intantiierung der entsprechenden Spezialisierung durch explizite Instantiierung erzwungen wurde, wird hier nichts mehr instantiiert.
            // &gt;&gt; Unless a class template specialization has been explicitly instantiated (14.7.2) or explicitly specialized (14.7.3),
            // &gt;&gt; the class template specialization is implicitly instantiated [...]
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>: Ahh, hier sind die Begrifflichkeiten:</p>
<blockquote>
<p>Template arguments can be specified when referring to a function template specialization by <strong><em>qualifying</em> the<br />
function template name</strong> with the list of template-arguments</p>
</blockquote>
<p>Ich meinte, du musst den Templatenamen mit der Argumentenliste qualifizieren um einen Typ zu haben. <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="😃"
    /><br />
Was ich nebenbei auch fand: Eine schöne Bezeichnung für Klassentemplates, <em>parametrisierte Typen</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324744</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 15:07:59 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 15:10:09 GMT]]></title><description><![CDATA[<p>Halte dich einfach an die üblichen Bezeichnungen, dann wirst du auch verstanden. Mit &quot;parametrisierte Typen&quot; verwirrst du erstmal jeden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324746</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 20 May 2013 15:10:09 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 15:34:10 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Halte dich einfach an die üblichen Bezeichnungen, dann wirst du auch verstanden. Mit &quot;parametrisierte Typen&quot; verwirrst du erstmal jeden...</p>
</blockquote>
<p>Ich fand nur die Bezeichnung schön, ich würde doch niemals parametrisierte Typen statt Klassentemplate sagen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
(Mit schön meinte ich, nicht gut verständlich und jedem bekannt o.ä., sondern trefflich beschreibend)</p>
<p>Gerri84 schrieb:</p>
<blockquote>
<p>ok thx damit sind alle unklarheiten beseitigt <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>Ignorier' einfach die letzten Posts, mein Fehler. (Sonst kommen wieder Unklarheiten auf)</p>
<p>Omen2 schrieb:</p>
<blockquote>
<p>Gerri84 schrieb:</p>
<blockquote>
<p>ahh okey ich seh ein licht am ende des tunnels... noch eine frage hat die endung irgend einen einfluss .impl oder könnte das jede endung haben ?</p>
</blockquote>
<p>Sollte *.impl sein. Es gibt auch noch andere Dateiendungen die das Gleiche bewerkstelligen, aber diese kannst Du auch gut selber googeln <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>GCC nutzt .tcc - was heißt das überhaupt? template....?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324749</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 15:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Mon, 20 May 2013 17:41:38 GMT]]></title><description><![CDATA[<p>Die partielle Spezialisierung eines Klassentemplates ist ein Template in der die Parameterliste des Primärtemplates durch eine andere ersetzt wird. Es gibt ein paar Beschränkungen, die neue Argumentliste muss aber nicht kürzer sein.</p>
<pre><code class="language-cpp">template &lt;typename T, typename U&gt; struct foo; // Primärtemplate
template &lt;typename T, typename U&gt; struct foo&lt;T,U&gt;; // ill-formed, Argumentliste ist identisch zur (impliziten) Liste des Primärtemplates
template &lt;typename T, typename U&gt; struct foo&lt;U,T&gt;; // ok, aber wahrscheinlich sinnlos
template &lt;typename T, typename U, typename V&gt; struct foo&lt;T(U), V&gt;; // Parameterliste ist länger
</code></pre>
<p>Eine explizite Spezialisierung eines (Klassen-, Funktions-, Alias-) Templates ist eine Klasse/Funktion/Typ, in dem die formalen Argumente des Templates mit konkreten Argumenten ersetzt wurden.</p>
<p>In der <em>Deklaration</em> eines <em>Primärtemplates</em> folgt dem Namen des Templates <em>keine</em> Argumentliste.<br />
In der <em>Deklaration</em> eine <em>Spezialisierung</em> eines Templates folgt dem Namen des Templates eine Argumentliste.<br />
Ist in der <em>Deklaration</em> die Parameterliste einer Spezialisierung leer, handelt es sich um eine explizite (vollständige) Spezialisierung.</p>
<p>Abgesehen von den obigen Umständen, verweist ein Templatename, dem eine Argumentliste folgt, stets auf eine explizite Spezialisierung (also Klasse/Funktion/Typ).<br />
Wird ein Templatename nicht von einer solchen Liste gefolgt, so verweist er in der Regel auf das Template, aber u.U. auch ggf. auf eine explizite Spezialisierung (der Name eines Klassentemplates innerhalb seiner Definition ggf. auf die <em>gegenwärtige Instanz</em>, bzw. bei einem Funktionstemplate, wenn die Templateargumente deduziert werden können), wenn der Kontext das verlangt.</p>
<p>Die Instantiierung eines (expliziten) Templatespezialisierung ist äquivalent zur Verarbeitung der Definition einer normalen Klasse/Funktion (eine formale Definition wird nicht gegeben), aus einer gegeben Templatedefinition heraus. Eine solche Instantiierung kann implizit oder explizit erfolgen.<br />
Wurde eine explizite Templatespezialisierung <em>deklariert</em>, so erfolgt keine Instantiierung dieser Spezialisierung (bzw. das Programm ist ggf. ill-formed, falls die Instantiierung bereits vor der Deklaration/in einer anderen ÜE erfolgte); bei Verwendung dieser Spezialisierung muss sie auch separat (vom Template) definiert werden.</p>
<p>Verwirrung stiftet wahrscheinlich die Tatsache, dass das Wort Spezialisierung allein mehrdeutig sein könnte: ist die jeweilige Entität (Klasse/Funktion/Typ) gemeint, oder aber die Deklaration derselben. Im Standard ist <em>immer</em> Ersteres gemeint. Aus diesem Grund taucht <em>specialize</em> auch nicht als Verb auf (außer in zwei Beispielen, deren Text sicher irgendwann mal überarbeitet wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324753</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 20 May 2013 17:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Wed, 22 May 2013 11:58:23 GMT]]></title><description><![CDATA[<p>danka danke für so viel input <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="😉"
    /> und trotzdem bleiben fragen kann ich ein template auch für liste/vector verwenden ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2325237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2325237</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Wed, 22 May 2013 11:58:23 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Wed, 22 May 2013 12:03:11 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>danka danke für so viel input <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="😉"
    /> und trotzdem bleiben fragen kann ich ein template auch für liste/vector verwenden ?</p>
</blockquote>
<p>Frage bitte präzisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2325238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2325238</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 22 May 2013 12:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Wed, 22 May 2013 13:31:15 GMT]]></title><description><![CDATA[<p>habe eien klasse die sonst keine templates enthält nur einen member welcher als liste oder vector verwendet werden soll muss dazu die klasse als template angelegt werden ? und wenn dieser member privat ist wie muss die get methode aussehen um darauf zuzugreifen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2325265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2325265</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Wed, 22 May 2013 13:31:15 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Wed, 22 May 2013 13:39:51 GMT]]></title><description><![CDATA[<p>das kommt drauf an, ob du den Typen des vectors fest vorgeben willst, oder nicht:</p>
<pre><code class="language-cpp">class Tst
{
  std::vector&lt;int&gt; bla;
  std::list&lt;int&gt; blubb;
};

template &lt;class T&gt;
class Tst
{
  std::vector&lt;T&gt; bla;
  std::list&lt;T&gt; blubb;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2325269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2325269</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 22 May 2013 13:39:51 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Wed, 22 May 2013 13:43:55 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>als liste oder vector</p>
</blockquote>
<p>Listen willst du eigentlich nie. Listen sind oberlahm verglichen mit anderen Container.</p>
<p>Verwende std::vector wenn möglich, std::deque (std::stack/std::queue) oder std::map/std::set bei Spezialwünschen. Wenn du meinst, eine std::list zu brauchen, frag nochmal hier im Forum nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2325271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2325271</guid><dc:creator><![CDATA[live]]></dc:creator><pubDate>Wed, 22 May 2013 13:43:55 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und Klassen on Wed, 22 May 2013 14:04:19 GMT]]></title><description><![CDATA[<p>ok also um funktionen oder methoden für vector und liste zu verwenden bleibt eigentlich dann nur der weg über iteratoren oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2325280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2325280</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Wed, 22 May 2013 14:04:19 GMT</pubDate></item></channel></rss>