<?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[Problem mit (rekursiver) Template-Definition]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin auf folgendes Problem gestossen. Ich möchte einen Graphen mit Knoten und<br />
Kanten programmieren. Da es verschiedene Kanten-Typen und die Knoten-Typen gibt,<br />
soll dieser Graph ein Template sein:</p>
<pre><code class="language-cpp">template&lt;typename NodeType, typenmane TransitionType&gt;
class Graph{
...
};
</code></pre>
<p>Jetzt soll natürlich jede Kante nur diese KnotenTypen enthalten.<br />
Folglich würde ich hierfür ein Template für Transition machen:</p>
<pre><code class="language-cpp">template&lt;typename NodeType&gt;
class Transition{
const NodeType&amp; getSourceNode(){...}
...
};
</code></pre>
<p>Ich möchte natürlich auch dass der Knoten die genauen Transitionen enthält:</p>
<pre><code class="language-cpp">template&lt;typename TransitionType&gt;
class Node{
const std::list&lt;TransitionType&gt;&amp; getTransitions(){...}
...
};
</code></pre>
<p>Hier gerate ich in eine Endlosschleife, da der Knoten den Transitions-Typen braucht,<br />
dieser wieder den Knoten-Typ usw.</p>
<p>Gibt es eine Lösung für dieses Problem? Wie würdet ihr das lösen?<br />
Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207278/problem-mit-rekursiver-template-definition</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 01:28:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207278.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Mar 2008 16:14:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit (rekursiver) Template-Definition on Wed, 05 Mar 2008 16:14:06 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin auf folgendes Problem gestossen. Ich möchte einen Graphen mit Knoten und<br />
Kanten programmieren. Da es verschiedene Kanten-Typen und die Knoten-Typen gibt,<br />
soll dieser Graph ein Template sein:</p>
<pre><code class="language-cpp">template&lt;typename NodeType, typenmane TransitionType&gt;
class Graph{
...
};
</code></pre>
<p>Jetzt soll natürlich jede Kante nur diese KnotenTypen enthalten.<br />
Folglich würde ich hierfür ein Template für Transition machen:</p>
<pre><code class="language-cpp">template&lt;typename NodeType&gt;
class Transition{
const NodeType&amp; getSourceNode(){...}
...
};
</code></pre>
<p>Ich möchte natürlich auch dass der Knoten die genauen Transitionen enthält:</p>
<pre><code class="language-cpp">template&lt;typename TransitionType&gt;
class Node{
const std::list&lt;TransitionType&gt;&amp; getTransitions(){...}
...
};
</code></pre>
<p>Hier gerate ich in eine Endlosschleife, da der Knoten den Transitions-Typen braucht,<br />
dieser wieder den Knoten-Typ usw.</p>
<p>Gibt es eine Lösung für dieses Problem? Wie würdet ihr das lösen?<br />
Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468882</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit (rekursiver) Template-Definition on Wed, 05 Mar 2008 16:50:05 GMT]]></title><description><![CDATA[<p>Bis dahin gibt es noch kein Problem. Was gegenseitige Abhängigkeiten betrifft, schaffen Templates normalerweise keine zusätzlichen Probleme, es gilt im Wesentlichen das, was auch bei Klassen zu beachten ist: falls die Definition einer Klasse (bzw. die Instantiierung eines Klassentemplates) von einer zweiten Definition (bzw. einer weiteren Instantiierung dieses oder eines anderen Templates) abhängt, so darf diese zweite Definition nicht ihrerseits von der ersten abhängen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468919</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:50:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit (rekursiver) Template-Definition on Wed, 05 Mar 2008 17:03:17 GMT]]></title><description><![CDATA[<p>Hallo camper,</p>
<p>Der Code soweit hab birgt soweit keine Probleme,<br />
aber wie definier ich denn jetzt den Graphen?</p>
<pre><code class="language-cpp">Graph&lt;Node, Transition&gt; graph;
</code></pre>
<p>reicht ja nicht.</p>
<pre><code class="language-cpp">Graph&lt;Node&lt;Transition&gt;, Transition&lt;Node&gt; &gt; graph;
</code></pre>
<p>reicht ja auch nicht <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>
<p>Das kann ich jetzt beliebig fortführen.</p>
<pre><code class="language-cpp">Graph&lt;Node&lt;Transition&lt;Node&gt; &gt;, Transition&lt;Node&lt;Transition&gt; &gt; &gt; graph;
</code></pre>
<p>usw.</p>
<p>Ich hoffe jetzt ist klar, was ich meine</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468927</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Mar 2008 17:03:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit (rekursiver) Template-Definition on Wed, 05 Mar 2008 18:38:52 GMT]]></title><description><![CDATA[<p>Was du machen könntest:</p>
<pre><code class="language-cpp">template&lt;typename TransitionType&gt;
struct Node
{

};

template&lt;template &lt;typename&gt; class NodeType&gt;
struct Transition
{
    typedef NodeType&lt;Transition&gt; node_type;
};

template&lt;typename TransitionType&gt;
struct Graph
{
    typedef typename TransitionType::node_type node_type;
    typedef TransitionType transition_type;
};

int main()
{
   Graph&lt; Transition&lt; Node &gt; &gt; graph;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1468986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468986</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Wed, 05 Mar 2008 18:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit (rekursiver) Template-Definition on Wed, 05 Mar 2008 19:12:34 GMT]]></title><description><![CDATA[<p>Hey evilissimo,</p>
<p>perfekt!!!</p>
<p>Ich danke dir vielmals.<br />
Ich glaub das hilft mir weiter.</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469009</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Mar 2008 19:12:34 GMT</pubDate></item></channel></rss>