<?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[Übersetzungproblem: Visual Studio vs. gcc]]></title><description><![CDATA[<p>Warum lässt sich folgender Code unter Visual Studio, aber nicht gcc 4.3.3 kompilieren?</p>
<pre><code>class Foo {
public: 
   template&lt;typename T&gt; long Do() { return 0; }
};

template&lt;typename T&gt;
class Dispatch {
public:
   template&lt;typename T&gt; static long Dispatch(T f, long n) {
      switch (n) {
      case 0: return f.Do&lt;int&gt;();
      case 1: return f.Do&lt;float&gt;();
      default: return -1;
      }
   }
};
</code></pre>
<p>Problem sollte klar sein. Ich möchte in Abhängigkeit von einem long-Wert auf eine bestimmte template Funktion in Foo dispatchen. Leider meckert hier der gcc die switch-Anweisung an.</p>
<p>Vielleicht hat einen Lösungsvorschlag?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239578/übersetzungproblem-visual-studio-vs-gcc</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:30:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239578.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Apr 2009 07:34:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 07:34:30 GMT]]></title><description><![CDATA[<p>Warum lässt sich folgender Code unter Visual Studio, aber nicht gcc 4.3.3 kompilieren?</p>
<pre><code>class Foo {
public: 
   template&lt;typename T&gt; long Do() { return 0; }
};

template&lt;typename T&gt;
class Dispatch {
public:
   template&lt;typename T&gt; static long Dispatch(T f, long n) {
      switch (n) {
      case 0: return f.Do&lt;int&gt;();
      case 1: return f.Do&lt;float&gt;();
      default: return -1;
      }
   }
};
</code></pre>
<p>Problem sollte klar sein. Ich möchte in Abhängigkeit von einem long-Wert auf eine bestimmte template Funktion in Foo dispatchen. Leider meckert hier der gcc die switch-Anweisung an.</p>
<p>Vielleicht hat einen Lösungsvorschlag?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701008</guid><dc:creator><![CDATA[witux]]></dc:creator><pubDate>Sat, 25 Apr 2009 07:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 08:18:20 GMT]]></title><description><![CDATA[<p>Vielleicht sollte ich noch nachtragen:</p>
<pre><code>// main
Foo f;
Dispatcher::Dispatch(f, 0);
Dispatcher::Dispatch(f, 0);
</code></pre>
<p>Eigentlich soll die Klasse auch Dispatcher heißen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701016</guid><dc:creator><![CDATA[witux]]></dc:creator><pubDate>Sat, 25 Apr 2009 08:18:20 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 09:57:14 GMT]]></title><description><![CDATA[<blockquote>
<p>Leider meckert hier der gcc die switch-Anweisung an.</p>
</blockquote>
<p>Post den exakten Fehler.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701055</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 25 Apr 2009 09:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 10:46:49 GMT]]></title><description><![CDATA[<p>Okay, Du hast recht. Hier noch mal alles zusammen:</p>
<pre><code>class Foo
{
public:
	template&lt;typename T&gt; long Do()
	{
		return 0;
	}
};

class Dispatcher
{
public:
	template&lt;typename T&gt; static long Dispatch(T f, long n);
};

template&lt;typename T&gt;
long Dispatcher::Dispatch(T f, long n)
{
	switch (n)
	{
	case 0:
		return f.Do&lt;int&gt;();				
	case 1:
		return f.Do&lt;float&gt;();
		break;
	default: 
		return -1;	
	}

	return 0;
}

int main(int argc, char* argv[])
{
	Foo f;
	Dispatcher::Dispatch(f, 0);
	Dispatcher::Dispatch(f, 1);
	return 0;
}
</code></pre>
<p>Und die Fehlermeldung:</p>
<pre><code>../main.cpp: In static member function »static long int Dispatcher::Dispatch(T, long int)«:
../main.cpp:22: Fehler: expected primary-expression before »int«
../main.cpp:22: Fehler: expected »;« before »int«
../main.cpp:22: Fehler: expected unqualified-id before »&gt;« token
../main.cpp:24: Fehler: expected primary-expression before »float«
../main.cpp:24: Fehler: expected »;« before »float«
../main.cpp:24: Fehler: expected unqualified-id before »&gt;« token
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1701078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701078</guid><dc:creator><![CDATA[witux]]></dc:creator><pubDate>Sat, 25 Apr 2009 10:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 10:50:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">return template f.Do&lt;int&gt;();
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701080</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 25 Apr 2009 10:50:33 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 13:45:18 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16305">@unskilled</a></p>
<p>Das kompiliert weder unter gcc noch Visual Studio</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701127</guid><dc:creator><![CDATA[witux]]></dc:creator><pubDate>Sat, 25 Apr 2009 13:45:18 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 13:52:48 GMT]]></title><description><![CDATA[<p>Solle vermutlich auch</p>
<pre><code class="language-cpp">f.template Do&lt;int&gt;()
</code></pre>
<p>heissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701134</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sat, 25 Apr 2009 13:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 13:54:24 GMT]]></title><description><![CDATA[<p>Unskilled ist unskilled, dass sollte wohl eher so heissen:</p>
<pre><code class="language-cpp">return f.template Do&lt;int&gt;();
// bzw.
return f.template Do&lt;float&gt;();
</code></pre>
<p>Grüssli <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1701135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701135</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 25 Apr 2009 13:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 14:23:28 GMT]]></title><description><![CDATA[<p>Fein, damit klappt es.</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1701152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701152</guid><dc:creator><![CDATA[witux]]></dc:creator><pubDate>Sat, 25 Apr 2009 14:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to Übersetzungproblem: Visual Studio vs. gcc on Sat, 25 Apr 2009 19:08:18 GMT]]></title><description><![CDATA[<p>tz : &lt;</p>
<p>war gerad erst aufgestanden und habs (deshalb wohl) iwie verplant -.-</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701260</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 25 Apr 2009 19:08:18 GMT</pubDate></item></channel></rss>