<?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[Ergebnistypen]]></title><description><![CDATA[<p>Hallo mal wieder,<br />
sagen wir, ich habe in einem Template die (eventuell dekorierten und wahrscheinlich integralen) Typen T1 und T2 und möchte nun wissen, welchen Typ das Resultat von T1()/T2() hat. Ist dann decltype(T1()/T2()) der richtige (tm) Weg, an den Typ zu gelangen?</p>
<p>Ich bräuchte das für zB. eine Punktklasse:</p>
<pre><code class="language-cpp">template&lt; typename TX1, typename TY1, typename TX2, typename TY2 &gt;
const SizeT&lt; decltype(TX1()-TX2()), /*...*/ &gt; operator-( const PointT&lt;TX1,TY1&gt;&amp;, const PointT&lt;TX2,TY2&gt;&amp;)
{
  // ...
}
</code></pre>
<p>Ich möchte halt, dass im Prinzip der gleiche Code inklusive Typen usw. erzeugt wird, wie wenn ich die Operationen per Hand ausschreiben würde.</p>
<p>Beste Grüße,<br />
Deci</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312655/ergebnistypen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 17:07:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312655.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jan 2013 13:51:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ergebnistypen on Thu, 10 Jan 2013 13:52:22 GMT]]></title><description><![CDATA[<p>Hallo mal wieder,<br />
sagen wir, ich habe in einem Template die (eventuell dekorierten und wahrscheinlich integralen) Typen T1 und T2 und möchte nun wissen, welchen Typ das Resultat von T1()/T2() hat. Ist dann decltype(T1()/T2()) der richtige (tm) Weg, an den Typ zu gelangen?</p>
<p>Ich bräuchte das für zB. eine Punktklasse:</p>
<pre><code class="language-cpp">template&lt; typename TX1, typename TY1, typename TX2, typename TY2 &gt;
const SizeT&lt; decltype(TX1()-TX2()), /*...*/ &gt; operator-( const PointT&lt;TX1,TY1&gt;&amp;, const PointT&lt;TX2,TY2&gt;&amp;)
{
  // ...
}
</code></pre>
<p>Ich möchte halt, dass im Prinzip der gleiche Code inklusive Typen usw. erzeugt wird, wie wenn ich die Operationen per Hand ausschreiben würde.</p>
<p>Beste Grüße,<br />
Deci</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288310</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 10 Jan 2013 13:52:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnistypen on Thu, 10 Jan 2013 13:56:37 GMT]]></title><description><![CDATA[<p>Ja, decltype ist hier eine Möglichkeit. Dein Beispiel ist sehr kurz, vielleicht kommt auch ein automatisch bestimmter Rückgabetyp infrage wie bei folgendem Sinnlosbeispiel:</p>
<pre><code>template&lt;typename T1, typename T2&gt;
auto add(const T1&amp; t1, const T2&amp; t2) -&gt; decltype(t1 + t2)
{
 return t1 + t2;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2288316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288316</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Jan 2013 13:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnistypen on Thu, 10 Jan 2013 14:21:34 GMT]]></title><description><![CDATA[<p>Okay, danke Dir, der auto-Weg ginge auch, danke für den Tipp.<br />
Ich frage mich, ob ich hier vielleicht ein bisschen übertreibe. Wenn die Punkte auch Referenzen usw. halten können, braucht man ziemlich schnell ziemlich viel &lt;type_traits&gt;-Zeug.<br />
Aber nur so kann ich zip_iteratoren basteln, bei denen die X-Koordinaten fest sind und nur die Y-Koordinaten verändert werden können, mit der gleichen komfortablen Point-Schnittstelle... hrmmhrmmm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288332</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 10 Jan 2013 14:21:34 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnistypen on Thu, 10 Jan 2013 18:49:21 GMT]]></title><description><![CDATA[<p>Mit auto()-&gt; würde ich das auch machen. Alternativ erzeugt man Ausdrücke eines bestimmten Typs zwecks Typ-Deduktion per std::declval</p>
<pre><code class="language-cpp">typedef decltype(declval&lt;int&gt;()/declval&lt;double&gt;()) etyp;
</code></pre>
<p>declval ist ein Funktionstemplate im std Namensraum, was man über &lt;utility&gt; bekommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288473</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 10 Jan 2013 18:49:21 GMT</pubDate></item></channel></rss>