<?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 Typen einschränken]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist es möglich, Typen einzuschränken?</p>
<p>Folgendes Beispiel:<br />
template&lt;class T&gt; struct eineKlasse{T member;};</p>
<p>Nun möchte ich, dass T zum Beispiel nur int oder char sein darf.<br />
Wie bekomm ich das in C++ hin?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304055/template-typen-einschränken</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 02:54:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304055.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 May 2012 21:10:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template Typen einschränken on Mon, 28 May 2012 21:10:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist es möglich, Typen einzuschränken?</p>
<p>Folgendes Beispiel:<br />
template&lt;class T&gt; struct eineKlasse{T member;};</p>
<p>Nun möchte ich, dass T zum Beispiel nur int oder char sein darf.<br />
Wie bekomm ich das in C++ hin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216540</guid><dc:creator><![CDATA[c++ templates]]></dc:creator><pubDate>Mon, 28 May 2012 21:10:19 GMT</pubDate></item><item><title><![CDATA[Reply to Template Typen einschränken on Mon, 28 May 2012 21:14:32 GMT]]></title><description><![CDATA[<p>Wieso musst du das hinbekommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216541</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 28 May 2012 21:14:32 GMT</pubDate></item><item><title><![CDATA[Reply to Template Typen einschränken on Mon, 28 May 2012 21:19:58 GMT]]></title><description><![CDATA[<p>c++ templates schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ist es möglich, Typen einzuschränken?</p>
<p>Folgendes Beispiel:<br />
template&lt;class T&gt; struct eineKlasse{T member;};</p>
<p>Nun möchte ich, dass T zum Beispiel nur int oder char sein darf.<br />
Wie bekomm ich das in C++ hin?</p>
</blockquote>
<p>Bspw. <code>static_assert</code> . Aber ob das Design so sinnvoll ist, ist eine ganz andere Frage...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216544</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 28 May 2012 21:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Template Typen einschränken on Mon, 28 May 2012 21:22:46 GMT]]></title><description><![CDATA[<p>Zum Beispiel</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
using namespace std;

template&lt;typename T&gt;
struct TestCharOrInt;

template&lt;&gt;
struct TestCharOrInt&lt;char&gt;
{
};
template&lt;&gt;
struct TestCharOrInt&lt;int&gt;
{
};

template&lt;class T&gt;
struct eineKlasse:TestCharOrInt&lt;T&gt;
{
    T member;
};

int main()
{
    eineKlasse&lt;char&gt; ch;
    eineKlasse&lt;int&gt; i;
    eineKlasse&lt;double&gt; d;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2216545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216545</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 28 May 2012 21:22:46 GMT</pubDate></item><item><title><![CDATA[Reply to Template Typen einschränken on Mon, 28 May 2012 21:31:57 GMT]]></title><description><![CDATA[<p>Stichworte: Spezialisierung, enable_if.</p>
<p>Elegante Lösung mit C++11 variadic templates.</p>
<pre><code class="language-cpp">template &lt;class T, class... Candidates&gt; struct is_one_of;

template &lt;class T, class U, class... Candidates&gt;
struct is_one_of&lt;T, U, Candidates...&gt; : is_one_of&lt;T, Candidates...&gt; {};

template &lt;class T, class... Candidates&gt;
struct is_one_of&lt;T, T, Candidates...&gt; : std::true_type {};

template &lt;class T&gt;
struct is_one_of&lt;T&gt; : std::false_type {};

template&lt;class T&gt; struct eineKlasse
{ 
  static_assert(is_one_of&lt;T, int, char&gt;::value, &quot;Wrong type!&quot;);
  T member;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2216546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216546</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 28 May 2012 21:31:57 GMT</pubDate></item></channel></rss>