<?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 non-type parameters: Problem bei static member und static member function]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in einem Buch die Aufgabe gefunden:<br />
&quot;Write templates that take non-type parameters of the following variety: an int, a pointer to an int, a pointer to a static class member of type int, and a pointer to a static member function.&quot;</p>
<p>Die beiden letzten bereiten mir hierbei ein paar Probleme. Mir ist nicht klar, wie ich das im template &lt;...&gt; angeben soll. Ich vermute, dass es im Buch selbst zu finden sein müsste, aber irgendwie habe ich es trotz längerem Suchen einfach nicht (wieder)finden könnte.<br />
Ich hoffe ihr könnt mir hier mit einem kurzen Code Beispiel helfen.</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176435/template-non-type-parameters-problem-bei-static-member-und-static-member-function</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 14:25:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176435.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Mar 2007 09:52:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template non-type parameters: Problem bei static member und static member function on Wed, 21 Mar 2007 09:52:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in einem Buch die Aufgabe gefunden:<br />
&quot;Write templates that take non-type parameters of the following variety: an int, a pointer to an int, a pointer to a static class member of type int, and a pointer to a static member function.&quot;</p>
<p>Die beiden letzten bereiten mir hierbei ein paar Probleme. Mir ist nicht klar, wie ich das im template &lt;...&gt; angeben soll. Ich vermute, dass es im Buch selbst zu finden sein müsste, aber irgendwie habe ich es trotz längerem Suchen einfach nicht (wieder)finden könnte.<br />
Ich hoffe ihr könnt mir hier mit einem kurzen Code Beispiel helfen.</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1249619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1249619</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 21 Mar 2007 09:52:01 GMT</pubDate></item><item><title><![CDATA[Reply to template non-type parameters: Problem bei static member und static member function on Wed, 21 Mar 2007 11:22:17 GMT]]></title><description><![CDATA[<p>Meinst du sowas?</p>
<pre><code class="language-cpp">template &lt;int i&gt;
struct AnInt {};

template &lt;int* i&gt;
struct APointerToAnInt {};

class X {
public:
   void f();
   static void sF();
   int i;
   static int sI;
};

template &lt;void (X::*)()&gt; 
struct APointerToAMemFunc {
};

template &lt;void (*)()&gt; 
struct APointerToAFunc {
};

template &lt; int (X::*) &gt; 
struct APointerToMember {};

int p = 0;
int main() {
   AnInt&lt;1&gt; anInt;
   APointerToAnInt&lt;&amp;p&gt; aPointer;
   APointerToAnInt&lt;&amp;X::sI&gt; aPointerToStaticData;
   APointerToMember&lt;&amp;X::i&gt; aPointerToMember;
   APointerToAMemFunc&lt;&amp;X::f&gt; aPtrToMemFunc;
   APointerToAFunc&lt;&amp;X::sF&gt; aPtrToFunc;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1249685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1249685</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 21 Mar 2007 11:22:17 GMT</pubDate></item><item><title><![CDATA[Reply to template non-type parameters: Problem bei static member und static member function on Wed, 21 Mar 2007 11:46:13 GMT]]></title><description><![CDATA[<p>Ach, so könnte das tatsächlich gemeint sein. Ich dachte, ich müsste das template so schreiben, dass es eine specification (ist das auf deutsch eine Spezialisierung oder eine Spezifizierung?) nur auf static mem func resp. static mem sei, also dass es für normale member funktionen nicht funktionnieren sollte.</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1249705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1249705</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 21 Mar 2007 11:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to template non-type parameters: Problem bei static member und static member function on Thu, 22 Mar 2007 11:00:11 GMT]]></title><description><![CDATA[<p>Shinja schrieb:</p>
<blockquote>
<p>Ach, so könnte das tatsächlich gemeint sein. Ich dachte, ich müsste das template so schreiben, dass es eine specification (ist das auf deutsch eine Spezialisierung oder eine Spezifizierung?) nur auf static mem func resp. static mem sei</p>
</blockquote>
<p>Zwei Dinge:<br />
a) du kannst keine Spezialisierung ausschließlich für statische Memberfunktionen (bzw. statische Daten) einer Klasse schreiben, da sich deren Typ nicht von dem Typ einer freien Funktion unterscheidet. Du schreibst also eine Spezialisierung für eine Funktion und kannst diese dann auch mit einer statischen Memberfunktion instanziieren.</p>
<p>b) Eine Spezialisierung für normale Funktionen kann zwar auch mit einer statischen Memberfunktion, nicht aber mit einer normalen Memberfunktion instanziiert werden. Letztere schließen in ihrem Typ immer auch die Klasse zu der sie gehören mit ein. Dein zweiter Gedanke:</p>
<blockquote>
<p>also dass es für normale member funktionen nicht funktionnieren sollte.</p>
</blockquote>
<p>hat sich somit erledigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250380</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Thu, 22 Mar 2007 11:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to template non-type parameters: Problem bei static member und static member function on Thu, 22 Mar 2007 11:04:56 GMT]]></title><description><![CDATA[<p>Achso, vielen Dank. Gut zu wissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250390</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Thu, 22 Mar 2007 11:04:56 GMT</pubDate></item></channel></rss>