<?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[Variadic Template - Funktionsweise und Castring mechanismus]]></title><description><![CDATA[<p>Hallo,</p>
<p>mich würde mal interessieren, wo bei den Variadic Templates gecastet wird,<br />
und ob man auf die Typumwandlung einfluß hat.</p>
<p>Also zum Beispiel</p>
<pre><code class="language-cpp">template &lt;typename T1,size_t D&gt;
class leaf
{
  public:
    template&lt;typename... T2&gt;
    leaf(T1 const val,T2... args);
    leaf(T1 const val);

  private:
    unsigned char c;
    T1 _data[D];
};

template &lt;typename T1, size_t D&gt;
template&lt;typename... T2&gt;
leaf&lt;T1,D&gt;::leaf(T1 const val, T2... args)
{
    std::cout &lt;&lt;&quot;\nval\t&quot; &lt;&lt; val &lt;&lt;&quot;typeid(val)&quot; &lt;&lt; typeid(val).name() &lt;&lt;&quot;\ttypeid(double)&quot; &lt;&lt;typeid(double).name() ;
    std::cout &lt;&lt;&quot;\n sizeof...(args)&quot; &lt;&lt;sizeof...(args);
    std::cout &lt;&lt;&quot;\n sizeof...(args)&quot; &lt;&lt;sizeof...(T2);
    leaf&lt;T1, D&gt;(args...);
}

template &lt;typename T1, size_t D&gt;
leaf&lt;T1,D&gt;::leaf(T1 const val)
{
    std::cout &lt;&lt;&quot;\nval\t&quot; &lt;&lt; val &lt;&lt;&quot;typeid(val)&quot; &lt;&lt; typeid(val).name()  &lt;&lt;&quot;\ttypeid(double)&quot; &lt;&lt;typeid(double).name();

}
</code></pre>
<p>Wenn in nun Folgendes Instanziere:</p>
<pre><code class="language-cpp">leaf&lt;double,3&gt; _leaf( 0.1, (short) 10.01 , (char)1.1 , 1 , 1.234);
</code></pre>
<p>Werden die Ganzzahl Typen wieder nach double gecastet.<br />
Gibt es denn eine Möglichkeit, auf die Typumwandlung Eifluß zu nehmen ??</p>
<p>Ev. um etwas in der Richtung</p>
<pre><code class="language-cpp">leaf&lt;EigenerTyp,3&gt; _leaf(EigenerTyp::KOnstruktor(Argumente), EigenerTyp::KOnstruktor(Argumente) ,etc);
</code></pre>
<p>zu instanzieren ??</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288202/variadic-template-funktionsweise-und-castring-mechanismus</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 02:28:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288202.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Jun 2011 12:54:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variadic Template - Funktionsweise und Castring mechanismus on Sun, 12 Jun 2011 12:56:21 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>mich würde mal interessieren, wo bei den Variadic Templates gecastet wird,<br />
und ob man auf die Typumwandlung einfluß hat.</p>
<p>Also zum Beispiel</p>
<pre><code class="language-cpp">template &lt;typename T1,size_t D&gt;
class leaf
{
  public:
    template&lt;typename... T2&gt;
    leaf(T1 const val,T2... args);
    leaf(T1 const val);

  private:
    unsigned char c;
    T1 _data[D];
};

template &lt;typename T1, size_t D&gt;
template&lt;typename... T2&gt;
leaf&lt;T1,D&gt;::leaf(T1 const val, T2... args)
{
    std::cout &lt;&lt;&quot;\nval\t&quot; &lt;&lt; val &lt;&lt;&quot;typeid(val)&quot; &lt;&lt; typeid(val).name() &lt;&lt;&quot;\ttypeid(double)&quot; &lt;&lt;typeid(double).name() ;
    std::cout &lt;&lt;&quot;\n sizeof...(args)&quot; &lt;&lt;sizeof...(args);
    std::cout &lt;&lt;&quot;\n sizeof...(args)&quot; &lt;&lt;sizeof...(T2);
    leaf&lt;T1, D&gt;(args...);
}

template &lt;typename T1, size_t D&gt;
leaf&lt;T1,D&gt;::leaf(T1 const val)
{
    std::cout &lt;&lt;&quot;\nval\t&quot; &lt;&lt; val &lt;&lt;&quot;typeid(val)&quot; &lt;&lt; typeid(val).name()  &lt;&lt;&quot;\ttypeid(double)&quot; &lt;&lt;typeid(double).name();

}
</code></pre>
<p>Wenn in nun Folgendes Instanziere:</p>
<pre><code class="language-cpp">leaf&lt;double,3&gt; _leaf( 0.1, (short) 10.01 , (char)1.1 , 1 , 1.234);
</code></pre>
<p>Werden die Ganzzahl Typen wieder nach double gecastet.<br />
Gibt es denn eine Möglichkeit, auf die Typumwandlung Eifluß zu nehmen ??</p>
<p>Ev. um etwas in der Richtung</p>
<pre><code class="language-cpp">leaf&lt;EigenerTyp,3&gt; _leaf(EigenerTyp::KOnstruktor(Argumente), EigenerTyp::KOnstruktor(Argumente) ,etc);
</code></pre>
<p>zu instanzieren ??</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077060</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Sun, 12 Jun 2011 12:56:21 GMT</pubDate></item></channel></rss>