<?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 template kompiliert nicht]]></title><description><![CDATA[<p>hallo,<br />
ich habe mal folgendes Minimalbeispiel zu einem etwas umfangreicherem Problem gemacht:</p>
<pre><code class="language-cpp">struct StaticText
{
};

template&lt;typename T&gt;
struct SimpleControlTheme
{
};

struct SimpleTheme
{
};

template&lt;template&lt;class&gt; class ControlThemeT, typename ThemeT&gt;
class ControlThemeCreator
{
public:
  template&lt;typename WidgetT, template&lt;class&gt; class AllocatorT&gt;
  ControlThemeT&lt;WidgetT&gt;* Create() const
  {
    return 0;
  };
};

struct Theme
{
  template&lt;typename CreatorT&gt;
  Theme(CreatorT const&amp; creator)
  {
    SimpleControlTheme&lt;StaticText&gt;* text = creator.Create&lt;StaticText, std::allocator&gt;(); // &lt;-----
  }
};

int main(int argc, char* argv[])
{
  ControlThemeCreator&lt;SimpleControlTheme, SimpleTheme&gt; creator;
  Theme theme(creator);
  return 0;
}
</code></pre>
<p>Sowohl Visual Studio als auch Sun Studio kompilieren den Quellcode anstandslos. G++ meckert aber rum:</p>
<pre><code>error: expected primary-expression before ',' token
error: expected initializer before '&gt;' token
</code></pre>
<p>Beide Meldungen verweisen auf die markierte Zeile.</p>
<p>Ich kann mit der Meldung wenig anfangen. Liegt das Problem jetzt am g++ oder an meinem Quellcode? Gibt es Verbesserungsvorschlaege (zur Behebung des Problems, nicht zur grundlegenden Umstrukturierung des Quellcodes <a href="http://o.ae" rel="nofollow">o.ae</a>.)?</p>
<p>Vielen Dank und viele Grüße,<br />
g++loser</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252361/template-template-kompiliert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 12:33:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252361.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Oct 2009 20:25:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template template kompiliert nicht on Sun, 18 Oct 2009 20:25:23 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich habe mal folgendes Minimalbeispiel zu einem etwas umfangreicherem Problem gemacht:</p>
<pre><code class="language-cpp">struct StaticText
{
};

template&lt;typename T&gt;
struct SimpleControlTheme
{
};

struct SimpleTheme
{
};

template&lt;template&lt;class&gt; class ControlThemeT, typename ThemeT&gt;
class ControlThemeCreator
{
public:
  template&lt;typename WidgetT, template&lt;class&gt; class AllocatorT&gt;
  ControlThemeT&lt;WidgetT&gt;* Create() const
  {
    return 0;
  };
};

struct Theme
{
  template&lt;typename CreatorT&gt;
  Theme(CreatorT const&amp; creator)
  {
    SimpleControlTheme&lt;StaticText&gt;* text = creator.Create&lt;StaticText, std::allocator&gt;(); // &lt;-----
  }
};

int main(int argc, char* argv[])
{
  ControlThemeCreator&lt;SimpleControlTheme, SimpleTheme&gt; creator;
  Theme theme(creator);
  return 0;
}
</code></pre>
<p>Sowohl Visual Studio als auch Sun Studio kompilieren den Quellcode anstandslos. G++ meckert aber rum:</p>
<pre><code>error: expected primary-expression before ',' token
error: expected initializer before '&gt;' token
</code></pre>
<p>Beide Meldungen verweisen auf die markierte Zeile.</p>
<p>Ich kann mit der Meldung wenig anfangen. Liegt das Problem jetzt am g++ oder an meinem Quellcode? Gibt es Verbesserungsvorschlaege (zur Behebung des Problems, nicht zur grundlegenden Umstrukturierung des Quellcodes <a href="http://o.ae" rel="nofollow">o.ae</a>.)?</p>
<p>Vielen Dank und viele Grüße,<br />
g++loser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1794440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1794440</guid><dc:creator><![CDATA[g++loser]]></dc:creator><pubDate>Sun, 18 Oct 2009 20:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to template template kompiliert nicht on Sun, 18 Oct 2009 20:30:37 GMT]]></title><description><![CDATA[<p>So nimmt er es an:</p>
<pre><code class="language-cpp">SimpleControlTheme&lt;StaticText&gt;* text = creator.template Create&lt;StaticText, std::allocator&gt;(); // &lt;-----
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1794443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1794443</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 18 Oct 2009 20:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to template template kompiliert nicht on Sun, 18 Oct 2009 20:31:17 GMT]]></title><description><![CDATA[<p>CreatorT::Create ist ein abhängiges Template, folglich</p>
<pre><code class="language-cpp">SimpleControlTheme&lt;StaticText&gt;* text = creator.template Create&lt;StaticText, std::allocator&gt;();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1794444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1794444</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 18 Oct 2009 20:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to template template kompiliert nicht on Sun, 18 Oct 2009 20:50:18 GMT]]></title><description><![CDATA[<p>Man lernt doch nie aus - so ein Konstrukt habe ich noch nie gesehen.</p>
<p>Ihr habt mir den (mittlerweile nur noch sehr kurzen) Tag gerettet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1794456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1794456</guid><dc:creator><![CDATA[g++loser]]></dc:creator><pubDate>Sun, 18 Oct 2009 20:50:18 GMT</pubDate></item></channel></rss>