<?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 nur für bestimmte klassen zulassen]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>gibt es in C++ die Möglichkeit Templates nur für bestimmte Klassen zuzulassen?<br />
Also, dass man meine Klasse</p>
<pre><code class="language-cpp">template&lt; class T &gt;
class Foo;
</code></pre>
<p>nur mit den Typen int und sagen wir einfach mal Bla benutzen kann?</p>
<p>Frohe Ostern</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/208797/templates-nur-für-bestimmte-klassen-zulassen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 01:55:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208797.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Mar 2008 20:38:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sat, 22 Mar 2008 20:38:20 GMT]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>gibt es in C++ die Möglichkeit Templates nur für bestimmte Klassen zuzulassen?<br />
Also, dass man meine Klasse</p>
<pre><code class="language-cpp">template&lt; class T &gt;
class Foo;
</code></pre>
<p>nur mit den Typen int und sagen wir einfach mal Bla benutzen kann?</p>
<p>Frohe Ostern</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478911</guid><dc:creator><![CDATA[OPPler]]></dc:creator><pubDate>Sat, 22 Mar 2008 20:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sat, 22 Mar 2008 22:12:18 GMT]]></title><description><![CDATA[<p>Du müsstest dafür sorgen, das jede normale template Instanz nicht kompiliert.<br />
Und dann für Int und Bla spezialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478945</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Sat, 22 Mar 2008 22:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sun, 23 Mar 2008 14:40:08 GMT]]></title><description><![CDATA[<p>Stichwort: Constraints/Traits. Leider bietet C++ hier keinen builtin Support. Aber man kann zumindest auf diverse Bibliotheken zurückgreifen, wie zB boost. Aber auch ohne solche Bibliotheken kann man das Verhalten recht einfach simulieren. Eine Möglichkeit wäre zB Spezialisierung.</p>
<pre><code class="language-cpp">template &lt;class T&gt;
struct FooConstraints;

template &lt;&gt;
struct FooConstraints&lt;int&gt;
{
    typedef int type;
};

template &lt;&gt;
struct FooConstraints&lt;Bla&gt;
{
    typedef Bla type;
};

template &lt;class T&gt;
class Foo
{
    private:
        typedef typename FooConstraints&lt;T&gt;::type dummy_; // static assert
    // Implementierung
    // ...
};

int main()
{
    Foo&lt;int&gt; a;  // ok
    Foo&lt;char&gt; b;  // error
}
</code></pre>
<p>Das ganze lässt sich sicherlich auch noch eleganter über eine Typliste realisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479150</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 23 Mar 2008 14:40:08 GMT</pubDate></item><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sun, 23 Mar 2008 16:22:59 GMT]]></title><description><![CDATA[<p>Danke schonmal, aber das hilft mir noch nicht ganz weiter.<br />
Ich habe folgenbdes Problem.</p>
<pre><code class="language-cpp">template&lt; typename T &gt;
class Test
{
    public:
        Test( void ) {};
        ~Test( void ) {};

        typedef T type;
};

template&lt; typename T&gt;
class Test2
{
    public:
        void Foo( void );
};

template&lt; typename T &gt;
void Test2&lt; T &gt;::Foo( void )
{
    T::type meinTyp;  // Hier kommt der Fehler 
}
</code></pre>
<p>Gibt es eine Möglichkeit dies zu realisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479199</guid><dc:creator><![CDATA[OPPler]]></dc:creator><pubDate>Sun, 23 Mar 2008 16:22:59 GMT</pubDate></item><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sun, 23 Mar 2008 17:02:29 GMT]]></title><description><![CDATA[<p>OPPler schrieb:</p>
<blockquote>
<p>Gibt es eine Möglichkeit dies zu realisieren?</p>
</blockquote>
<p>wenn du uns sagst, was für ein fehler kommt, können wir den auch bestimmt lösen.<br />
aber es beschleicht mich das gefühl, dass dein problem nichts mit der fragestellung zu tun hat.</p>
<p>eine mögliche <em>realisierung</em> wurde bereits genannt <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>bei mir kompiliert dein code übrigens ohne probleme:</p>
<pre><code class="language-cpp">int main()
{
	Test2&lt;Test&lt;int&gt; &gt; t;
	t.Foo();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1479218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479218</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Sun, 23 Mar 2008 17:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sun, 23 Mar 2008 17:33:27 GMT]]></title><description><![CDATA[<p>Xantus schrieb:</p>
<blockquote>
<p>bei mir kompiliert dein code übrigens ohne probleme:</p>
</blockquote>
<p>Dann ist dein Compiler bissl krank <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>Im Code fehlt ein typename, ...</p>
<pre><code class="language-cpp">typename T::type meinTyp;
</code></pre>
<p>... da type vom Template-Parameter T abhängt ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479245</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 23 Mar 2008 17:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to Templates nur für bestimmte klassen zulassen on Sun, 23 Mar 2008 17:39:11 GMT]]></title><description><![CDATA[<p>Danke KasF <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/1479248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479248</guid><dc:creator><![CDATA[OPPler]]></dc:creator><pubDate>Sun, 23 Mar 2008 17:39:11 GMT</pubDate></item></channel></rss>