<?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 verständnis Problem]]></title><description><![CDATA[<p>Guten Morgen =)...</p>
<p>momentan stehe ich vor dem Folgenden Problem:</p>
<pre><code class="language-cpp">// Ich mache irgendwo sowas 
// wobei das TYPELIST_3(Type1, Type2,Type3) zu dem Typen &quot;Typelist&quot; wird
typedef TL::GenSactterHierarchy&lt;TYPELIST_3(Type1, Type2,Type3), Holder&gt; WidgetInfo;

WidgetInfo obj;

template &lt;int i, class H&gt;
typename FieldTrait&lt;H&gt;::At&lt;i&gt;::Result&amp; 
Field(H&amp; obj)
{
        /// So soll der Aufruf funktionieren.
	typedef typename FieldTrait&lt;H&gt;::At&lt;i&gt;::Result Result;
}
</code></pre>
<p>Irgendwie bekomme ich den &quot;FieldTrait&quot; nicht ordentlich hin.<br />
H = Typelist</p>
<pre><code class="language-cpp">template &lt;class TList&gt;
	struct FieldTrait;

	template &lt;class T, class U&gt;
	struct FieldTrait&lt;Typelist&lt;T,U&gt; &gt;
	{
		typedef TypelistAt At; /// geht netürlich nicht 
	};
</code></pre>
<p>Ich weiß nicht wie ich das At dazu bringe, einen Templateparameter zu nehmen,<br />
ohne FieldTrait einen weitern geben zu müssen.</p>
<p>Ahhh ich glaub ich habs... moment... <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="🙂"
    /> NO <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title="=("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304563/template-verständnis-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 18:45:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304563.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Jun 2012 09:25:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 10:00:22 GMT]]></title><description><![CDATA[<p>Guten Morgen =)...</p>
<p>momentan stehe ich vor dem Folgenden Problem:</p>
<pre><code class="language-cpp">// Ich mache irgendwo sowas 
// wobei das TYPELIST_3(Type1, Type2,Type3) zu dem Typen &quot;Typelist&quot; wird
typedef TL::GenSactterHierarchy&lt;TYPELIST_3(Type1, Type2,Type3), Holder&gt; WidgetInfo;

WidgetInfo obj;

template &lt;int i, class H&gt;
typename FieldTrait&lt;H&gt;::At&lt;i&gt;::Result&amp; 
Field(H&amp; obj)
{
        /// So soll der Aufruf funktionieren.
	typedef typename FieldTrait&lt;H&gt;::At&lt;i&gt;::Result Result;
}
</code></pre>
<p>Irgendwie bekomme ich den &quot;FieldTrait&quot; nicht ordentlich hin.<br />
H = Typelist</p>
<pre><code class="language-cpp">template &lt;class TList&gt;
	struct FieldTrait;

	template &lt;class T, class U&gt;
	struct FieldTrait&lt;Typelist&lt;T,U&gt; &gt;
	{
		typedef TypelistAt At; /// geht netürlich nicht 
	};
</code></pre>
<p>Ich weiß nicht wie ich das At dazu bringe, einen Templateparameter zu nehmen,<br />
ohne FieldTrait einen weitern geben zu müssen.</p>
<p>Ahhh ich glaub ich habs... moment... <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="🙂"
    /> NO <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title="=("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221251</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Sat, 09 Jun 2012 10:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 10:39:45 GMT]]></title><description><![CDATA[<p>Ich verstehe nicht ganz, was du willst, aber vielleicht hättest du gerne den template-typedef-Ersatz aus C++11?</p>
<p><a href="http://en.wikipedia.org/wiki/C%2B%2B11#Alias_templates" rel="nofollow">http://en.wikipedia.org/wiki/C%2B%2B11#Alias_templates</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221270</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 09 Jun 2012 10:39:45 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 11:12:59 GMT]]></title><description><![CDATA[<p>Na ja ob ich da jetzt using oder typedef schreibe ist für mich erstmal nicht so wichtig. (Ich hätte gerne eine Banane, hier hat du nen schuh.. !! Was soll ich mit nem schuh ?? Der schmeckt nach käse und der ist genau so gelb wie ne banane... <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="🙂"
    /> ) Wobei mein post wohl eher zu vergleichen ist mit &quot;Ich mag was gelbes&quot; *lach*</p>
<p>Ich glaub ich hab aber Hilfe gefunden....<br />
Also hab ein Beispiel gefunden.</p>
<p>Es geht darum die This pointer aus dem Objekt wieder raus zu bekommen, wo mit GenSattern erzeugt worden ist...<br />
(Also auf ne schöne Art und Weise... ich hab schon ne lösung gepostet in den vorigen Posts, die ist aber nicht zufriedenstellend. Zumindest versuche ich es jetzt schöner zu machen. )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221275</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Sat, 09 Jun 2012 11:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 12:02:28 GMT]]></title><description><![CDATA[<p>Meinst du soetwas?</p>
<pre><code class="language-cpp">template &lt;class TList&gt;
struct FieldTrait;

template &lt;class T, class U&gt;
struct FieldTrait&lt;Typelist&lt;T,U&gt; &gt;
{
    template &lt;int i&gt;
    struct At
    {
        typedef Typelist Result;
    };
}; 

...

template &lt;int i, class H&gt;
typename FieldTrait&lt;H&gt;::template At&lt;i&gt;::Result&amp; Field(H&amp; obj)
{
...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2221304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221304</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 09 Jun 2012 12:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 12:54:21 GMT]]></title><description><![CDATA[<p>Habs zwar noch nicht ausprobiert, aber wennd as geht dann ja....<br />
Oh mann ich bin ja doof.... <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="🙂"
    /> Danke</p>
<p>Wow das ist aber cool <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>EDIT: Das muss ich mir erstmal länger anschauen, glaub 100% ist es das nicht, aber Ev. bringts mich in die richtige Richtung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221320</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Sat, 09 Jun 2012 12:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 13:22:38 GMT]]></title><description><![CDATA[<p>AlexanderKiebler schrieb:</p>
<blockquote>
<p>Na ja ob ich da jetzt using oder typedef schreibe ist für mich erstmal nicht so wichtig. (Ich hätte gerne eine Banane, hier hat du nen schuh.. !! Was soll ich mit nem schuh ?? Der schmeckt nach käse und der ist genau so gelb wie ne banane... <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="🙂"
    /> ) Wobei mein post wohl eher zu vergleichen ist mit &quot;Ich mag was gelbes&quot; *lach*</p>
</blockquote>
<p>Ich glaube, du hast die Sprungfedern am Schuh übersehen. Du kannst so nämlich template-typedefs machen:</p>
<pre><code class="language-cpp">template &lt;class TList&gt;
    struct FieldTrait;

    template &lt;class T, class U&gt;
    struct FieldTrait&lt;Typelist&lt;T,U&gt; &gt;
    {
        template&lt;class T1, class U1&gt; using At = TypelistAt&lt;T1, U1&gt;;
    };
</code></pre>
<p>EDIT: Lass mich raten... mit At&lt;int i&gt; willst du auf den i-ten Typ zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221342</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 09 Jun 2012 13:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 14:01:49 GMT]]></title><description><![CDATA[<p>Also mit deinem Schuh hüpft sichs sicher toll *lach*</p>
<p>Aber mein compiler kann grad kein schuh.... *lach*...<br />
Ich schmeiß mich weg... ich finds lustig irgendwie...</p>
<p>Werd mir das using aber in jedem Fall noch anschauen....<br />
Gerade mag ich mich eben auf das fokusieren was ich tue...<br />
Einfach als erklärung wiso das using bei mir irgendwie nicht zum Thema passte.<br />
Das kann immer gut auch unwissenheit meinerseits sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221356</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Sat, 09 Jun 2012 14:01:49 GMT</pubDate></item><item><title><![CDATA[Reply to Template verständnis Problem on Sat, 09 Jun 2012 15:21:18 GMT]]></title><description><![CDATA[<p>Okay, habs mir fertig abgeschaut,...</p>
<p>Tut jetzt. <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>Kann jetzt endlich sowas schreiben:</p>
<pre><code class="language-cpp">Holder&lt;Type1&gt; &amp;H_int    = TL::Field&lt;0&gt;(obj);
 Holder&lt;Type2&gt; &amp;H_double = TL::Field&lt;1&gt;(obj);
 Holder&lt;Type3&gt; &amp;H_char	 = TL::Field&lt;2&gt;(obj);
</code></pre>
<p>Das ist verdammt coool.<br />
Werte das mal als Programmiertechnik...<br />
Als nächstes kommt design muster für welches man das super anwenden kann.<br />
Wobei ich galube das das für manche ziemlich offensichtlich ist.<br />
Ich bin begeistert.<br />
Wow - einfach genial...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221381</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Sat, 09 Jun 2012 15:21:18 GMT</pubDate></item></channel></rss>