<?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] Funktionsvorlage konnte nicht spezialisiert werde]]></title><description><![CDATA[<p>Guten Abend,<br />
gegeben ist folgenden Memberfunktion</p>
<pre><code class="language-cpp">template &lt;typename T&gt; Logging&amp; Logging::operator &lt;&lt;(const T &amp;Event)
{
    std::fstream File;
    File.open(this-&gt;m_pfad.c_str(), std::ios::out | std::ios::app);
    if(File.is_open())
    {
        File &lt;&lt; Event;
        File.close();
    }
    return *this;
}
</code></pre>
<p>Ruf ich nun den &lt;&lt; operator so auf</p>
<pre><code class="language-cpp">int main()
{
    Logging log;
    int i=15;
    log &lt;&lt; i;
    return 0;
}
</code></pre>
<p>kommt folgende Fehlermeldung</p>
<pre><code>1&gt;f:\c++ - programme\sonstiges\logging\main.cpp(13) : error C2893: Funktionsvorlage 'class Logging &amp;__thiscall Logging::operator &lt;&lt;(const T &amp;)' konnte nicht spezialisiert werden
        Mit den folgenden Vorlagenargumenten:
        'int'
1&gt;f:\c++ - programme\sonstiges\logging\main.cpp(13) : error C2676: Binaerer Operator '&lt;&lt;' : 'class Logging' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten Operator geeigneten Typ nicht
</code></pre>
<p>Wodrann liegt das ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182747/template-funktionsvorlage-konnte-nicht-spezialisiert-werde</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 00:22:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182747.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 May 2007 19:00:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 19:00:20 GMT]]></title><description><![CDATA[<p>Guten Abend,<br />
gegeben ist folgenden Memberfunktion</p>
<pre><code class="language-cpp">template &lt;typename T&gt; Logging&amp; Logging::operator &lt;&lt;(const T &amp;Event)
{
    std::fstream File;
    File.open(this-&gt;m_pfad.c_str(), std::ios::out | std::ios::app);
    if(File.is_open())
    {
        File &lt;&lt; Event;
        File.close();
    }
    return *this;
}
</code></pre>
<p>Ruf ich nun den &lt;&lt; operator so auf</p>
<pre><code class="language-cpp">int main()
{
    Logging log;
    int i=15;
    log &lt;&lt; i;
    return 0;
}
</code></pre>
<p>kommt folgende Fehlermeldung</p>
<pre><code>1&gt;f:\c++ - programme\sonstiges\logging\main.cpp(13) : error C2893: Funktionsvorlage 'class Logging &amp;__thiscall Logging::operator &lt;&lt;(const T &amp;)' konnte nicht spezialisiert werden
        Mit den folgenden Vorlagenargumenten:
        'int'
1&gt;f:\c++ - programme\sonstiges\logging\main.cpp(13) : error C2676: Binaerer Operator '&lt;&lt;' : 'class Logging' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten Operator geeigneten Typ nicht
</code></pre>
<p>Wodrann liegt das ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293997</guid><dc:creator><![CDATA[Deathwatcher]]></dc:creator><pubDate>Mon, 28 May 2007 19:00:20 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 19:58:36 GMT]]></title><description><![CDATA[<p>Hi, das kommt mir irgendwie bekannt vor, da gabs doch schonmal nen Thread von dir <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>In deinem Code ist so kein Problem. Ich denke eher du hast deine Definition deiner Template-Memberfunktion nicht in der selben Datei wie die Klassendefinition.</p>
<p>Bei Templates kannst du nicht in .h und .cpp trennen. Dh Deklaration und Definition müssen in einer Übersetzungseinheit stehen. ( export beachten wir mal nicht <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>Packe mal alles in die .h und probiere es nochmal aus ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294036</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 28 May 2007 19:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 20:37:32 GMT]]></title><description><![CDATA[<p>Die Klassen - und Template-Memberfunktion Definition befinden sich in der selben .h Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294054</guid><dc:creator><![CDATA[Deathwatcher]]></dc:creator><pubDate>Mon, 28 May 2007 20:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 20:48:24 GMT]]></title><description><![CDATA[<p>Hmm, poste mal ein komplett kompilierbares Beispiel. Am besten die komplette .h.<br />
Da ist nämlich kein Fehler ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294064</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 28 May 2007 20:48:24 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 21:00:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//
//    logging.h
//

#ifndef __LOGGING__
#define __LOGGING__

#include &lt;string&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;

class Logging
{
    private:
        std::string m_pfad;
    public:
        template&lt;typename T&gt; Logging&amp; operator &lt;&lt;(const T &amp;Event);
        Logging();
        ~Logging();
};
#endif

template &lt;typename T&gt; Logging&amp; Logging::operator &lt;&lt;(const T &amp;Event)
{
    std::fstream File;
    /* Anhängen der Log einträge */
    File.open(this-&gt;m_pfad.c_str(), std::ios::out | std::ios::app);
    if(File.is_open())
    {
        File &lt;&lt; Event;
        File.close();
    }
    return *this;
}

//
//    logging.cpp
//

#include &quot;logging.h&quot;

Logging::Logging()
{
    this-&gt;m_pfad = &quot;LOG.txt&quot;;
    std::fstream File;
    File.open(this-&gt;m_pfad.c_str(), std::ios::out);
    if(File.is_open())
    {
        File &lt;&lt; &quot;Beginn:\n&quot; &lt;&lt;std::endl;
        File.close();
    }
}

Logging::~Logging()
{
}

//
// main.cpp
//

#include &lt;iostream&gt;
#include &quot;logging.h&quot;

int main()
{
    Logging log;
    int i=15;
    log &lt;&lt; i;
    return 0;
}
</code></pre>
<p>Hier ist das Beispiel, nur wird hier der oben genannte Fehler ausgegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294068</guid><dc:creator><![CDATA[Deathwatcher]]></dc:creator><pubDate>Mon, 28 May 2007 21:00:29 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 21:10:24 GMT]]></title><description><![CDATA[<p>Alles sieht gut aus. Mach mal ein &quot;Rebuild all&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294080</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 28 May 2007 21:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 21:40:19 GMT]]></title><description><![CDATA[<p>Danke geht jetzt :p</p>
<p>komisch also im VS6 kommen die oben genannten Fehler, im VS2005 läuft es ohnen Probleme <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294089</guid><dc:creator><![CDATA[Deathwatcher]]></dc:creator><pubDate>Mon, 28 May 2007 21:40:19 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Mon, 28 May 2007 21:44:10 GMT]]></title><description><![CDATA[<p>iirc hats vs6 nicht so mit member-templates</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294091</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 28 May 2007 21:44:10 GMT</pubDate></item><item><title><![CDATA[Reply to [Template] Funktionsvorlage konnte nicht spezialisiert werde on Tue, 29 May 2007 09:08:36 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>iirc hats vs6 nicht so mit member-templates</p>
</blockquote>
<p>VC 6 (SP5) unterstützt Membertemplates, deren Definition muss aber innerhalb der Klassendefinition geschehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294275</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 29 May 2007 09:08:36 GMT</pubDate></item></channel></rss>