<?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[umwandeln in template?]]></title><description><![CDATA[<p>he,<br />
ich habe folgende typedef's</p>
<pre><code class="language-cpp">#if defined(A)

namespace FM
{
    typedef float scalar;
}

#elif defined(B)

namespace FM
{
    typedef double scalar;
}
#endif
</code></pre>
<p>würde das aber gern als template gestallten, so dass ich beide typen verwenden kann. beide datentypen sollten hinterher als scalar bezeichnet werden. kann ich das irgendwie umsetzen?<br />
liebe grüße micha</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187382/umwandeln-in-template</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 16:05:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187382.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Jul 2007 08:03:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 08:03:41 GMT]]></title><description><![CDATA[<p>he,<br />
ich habe folgende typedef's</p>
<pre><code class="language-cpp">#if defined(A)

namespace FM
{
    typedef float scalar;
}

#elif defined(B)

namespace FM
{
    typedef double scalar;
}
#endif
</code></pre>
<p>würde das aber gern als template gestallten, so dass ich beide typen verwenden kann. beide datentypen sollten hinterher als scalar bezeichnet werden. kann ich das irgendwie umsetzen?<br />
liebe grüße micha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328221</guid><dc:creator><![CDATA[micabo]]></dc:creator><pubDate>Thu, 19 Jul 2007 08:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 08:10:23 GMT]]></title><description><![CDATA[<p>Namespaces können nicht als Template angelegt werden, Klassen schon:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
struct FM
{
  typedef T scalar;
};

FM&lt;float&gt;::scalar value;
</code></pre>
<p>(btw, auf globaler Ebene kannst du nur einen Typ mit dem Namen 'scalar' haben - wenn du beide parallel benötigst, mußt du sie in verschiedene Scopes verpacken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328224</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Jul 2007 08:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 08:13:35 GMT]]></title><description><![CDATA[<p>So?</p>
<pre><code class="language-cpp">template&lt; typename T, typename U, bool flag = true &gt;
struct SelectType
{
    typedef T Type;
};

template&lt; typename T, typename U &gt;
struct SelectType&lt; T, U, false &gt;
{
    typedef U Type;
};

typedef SelectType&lt; char, long &gt;::Type Type; // Type = char
typedef SelectType&lt; char, long, false &gt;::Type Type; // Type == long
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1328226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328226</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 19 Jul 2007 08:13:35 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 09:17:27 GMT]]></title><description><![CDATA[<p>mh,<br />
so kann ich's nicht machen.<br />
wenn ich ne klasse draus mache, gibts da ne möglichkeit ein</p>
<pre><code class="language-cpp">template&lt;class T&gt; class scalar{}
</code></pre>
<p>nur als scalar aufzurufen und das automatisch als<br />
scalar&lt;double&gt; zu interpretieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328296</guid><dc:creator><![CDATA[micabo]]></dc:creator><pubDate>Thu, 19 Jul 2007 09:17:27 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 09:22:43 GMT]]></title><description><![CDATA[<p>Nein, bei Template-Klassen mußt du immer die Template-Parameter angeben. Du könntest höchstens Default-Parameter verwenden:</p>
<pre><code class="language-cpp">template&lt;typename T = double&gt;
class scalar
{
  ...
}

scalar&lt;&gt; value;//ist ein scalar&lt;double&gt;
</code></pre>
<p>(die Template-Klammern sind aber (afair) notwendig, selbst wenn nichts drin steht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328301</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Jul 2007 09:22:43 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 09:36:19 GMT]]></title><description><![CDATA[<p>vielen dank,<br />
jetzt kann ich wenigstens aufhören mit suchen und anfangen mit implementieren<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328323</guid><dc:creator><![CDATA[micabo]]></dc:creator><pubDate>Thu, 19 Jul 2007 09:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Thu, 19 Jul 2007 23:35:32 GMT]]></title><description><![CDATA[<p>Den typedef würde ich garnicht durch irgendetwas ersetzen, sondern einfach entfernen. Dann machst du aus allen Klassen die &quot;scalar&quot; verwenden ein Template:</p>
<pre><code class="language-cpp">class Foo
{
public:
    scalar Bar();
    scalar m_blubb;
};
// --&gt;
template &lt;class S&gt; class Foo
{
public:
    S Bar();
    S m_blubb;
};
</code></pre>
<p>Das ist zumindest die &quot;übliche&quot; Vorgehensweise.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328922</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 19 Jul 2007 23:35:32 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Fri, 20 Jul 2007 06:05:07 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Das ist zumindest die &quot;übliche&quot; Vorgehensweise.</p>
</blockquote>
<p>nein. erzeugt viel zuviele komplikationen. je nachdem wie oft scalar gebraucht wird.</p>
<p>das #ifdef mit den typedefs ist die normale lösung für sowas. man muss nicht zwangsläufig immer templates verwenden. wenn scalar zur compiletime zu entweder float oder double wird dann ist so ein #ifdef super.</p>
<p>das problem mit template params ist: ich hab die überall im code stehen. das typedef steht einmal an einer zentralen stellen. wenn ich nun long double statt double will: *peng* neues #ifdef rein und fertig. alles kompiliert problemlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328954</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 20 Jul 2007 06:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to umwandeln in template? on Fri, 20 Jul 2007 07:15:43 GMT]]></title><description><![CDATA[<p>Ja, wenn man nur einen Datentyp konstant im gesamten Programm verwenden will, ist ein typedef völlig ausreichend (ich verwende dazu nichtmal #ifdef-Konstrukte, sondern würde je nach Bedarf mein <code>typedef xxx scalar;</code> berichtigen). Aber der OP wollte ja float- und double-Versionen nebeneinander verwenden und dazu reicht ein typedef nicht aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1328977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1328977</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 20 Jul 2007 07:15:43 GMT</pubDate></item></channel></rss>