<?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[Undefined reference bei Funktionen-Template]]></title><description><![CDATA[<p>Hi,</p>
<p>folgendes:</p>
<pre><code>//types.h
#ifndef TYPES_H_INCLUDED
#define TYPES_H_INCLUDED
#include &lt;memory&gt;
#include &lt;unordered_map&gt;
#include &lt;vector&gt;

typedef unsigned int Type;

Type global_type = 0;

template &lt;typename T&gt;
Type getType()
{
    static Type mytype = global_type++;
    return mytype;
}

[...]
#endif 
//component.h
#ifndef COMPONENT_H_INCLUDED
#define COMPONENT_H_INCLUDED
#include &quot;../types.h&quot;

class BaseComponent
{
private:

public:
    BaseComponent()
    {}
};

template &lt;typename T&gt;
class Component
:public BaseComponent
{
public:
    static Type type(){return getType&lt;T&gt;();}
};

#endif // COMPONENT_H_INCLUDED
</code></pre>
<p>wirft:</p>
<blockquote>
<p>c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\mingw32\bits\gthr-default.h|403|multiple definition of `global_type'|</p>
</blockquote>
<p>mit Verweis auf irgendeine esoterisch aussehenden Standardlib.</p>
<p>Standardlösung:<br />
Definition und Deklaration in verschiedene Dateien. Hier ist es aber ein Template. Was tun? Oder liegt der Fehler irgendwo anders? &quot;global_type&quot; taucht garantiert nur genau dort auf.</p>
<p>Vielen Dank für jede Hilfe <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/topic/337014/undefined-reference-bei-funktionen-template</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 16:56:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337014.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Mar 2016 06:14:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Undefined reference bei Funktionen-Template on Tue, 01 Mar 2016 06:14:27 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgendes:</p>
<pre><code>//types.h
#ifndef TYPES_H_INCLUDED
#define TYPES_H_INCLUDED
#include &lt;memory&gt;
#include &lt;unordered_map&gt;
#include &lt;vector&gt;

typedef unsigned int Type;

Type global_type = 0;

template &lt;typename T&gt;
Type getType()
{
    static Type mytype = global_type++;
    return mytype;
}

[...]
#endif 
//component.h
#ifndef COMPONENT_H_INCLUDED
#define COMPONENT_H_INCLUDED
#include &quot;../types.h&quot;

class BaseComponent
{
private:

public:
    BaseComponent()
    {}
};

template &lt;typename T&gt;
class Component
:public BaseComponent
{
public:
    static Type type(){return getType&lt;T&gt;();}
};

#endif // COMPONENT_H_INCLUDED
</code></pre>
<p>wirft:</p>
<blockquote>
<p>c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\mingw32\bits\gthr-default.h|403|multiple definition of `global_type'|</p>
</blockquote>
<p>mit Verweis auf irgendeine esoterisch aussehenden Standardlib.</p>
<p>Standardlösung:<br />
Definition und Deklaration in verschiedene Dateien. Hier ist es aber ein Template. Was tun? Oder liegt der Fehler irgendwo anders? &quot;global_type&quot; taucht garantiert nur genau dort auf.</p>
<p>Vielen Dank für jede Hilfe <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/2489061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2489061</guid><dc:creator><![CDATA[kingcools]]></dc:creator><pubDate>Tue, 01 Mar 2016 06:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined reference bei Funktionen-Template on Tue, 01 Mar 2016 06:47:31 GMT]]></title><description><![CDATA[<p>global_type ist doch kein Template, sondern ein ganz normaler unsigned int, ganz unabhängig von seiner Benutzung in get_type. Das geht natürlich schief, wenn man den im Header definiert. Also: Im Header nur deklarieren (extern) und dann in einer Quellcodedatei definieren.</p>
<p>Was genau willst du hier eigentlich zählen? Das sieht wie etwas aus, das man sicher auch eleganter lösen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2489063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2489063</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 01 Mar 2016 06:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined reference bei Funktionen-Template on Tue, 01 Mar 2016 17:21:42 GMT]]></title><description><![CDATA[<blockquote>
<p>Also: Im Header nur deklarieren (extern) und dann in einer Quellcodedatei definieren</p>
</blockquote>
<p>Danke!</p>
<blockquote>
<p>Was genau willst du hier eigentlich zählen?</p>
</blockquote>
<p>Zählen streng genommen gar nichts, sondern Typen Integern zuweisen, damit ich z.B. std::unordered_map&lt;Type, std::vector&lt;Entities&gt;&gt; schreiben kann.</p>
<p>Bin offen für andere Ideen <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/2489118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2489118</guid><dc:creator><![CDATA[kingcools]]></dc:creator><pubDate>Tue, 01 Mar 2016 17:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined reference bei Funktionen-Template on Tue, 01 Mar 2016 18:26:23 GMT]]></title><description><![CDATA[<p>kingcools schrieb:</p>
<blockquote>
<blockquote>
<p>Was genau willst du hier eigentlich zählen?</p>
</blockquote>
<p>Zählen streng genommen gar nichts, sondern Typen Integern zuweisen, damit ich z.B. std::unordered_map&lt;Type, std::vector&lt;Entities&gt;&gt; schreiben kann.</p>
</blockquote>
<p>Kannst du ein Beispiel geben, wie du dir die Anwendung vorstellst, bzw. wie es derzeit funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2489126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2489126</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 01 Mar 2016 18:26:23 GMT</pubDate></item></channel></rss>