<?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[auto und decltype]]></title><description><![CDATA[<p>wo ist der unterschied zwischen den folgenden 3 beispielen?<br />
so weit ich weiß funktionieren alle gleich und ich bin mir nie sicher wann ich was verwenden soll <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>
<pre><code>class c{
   double d;
   auto get_d(){
     return d;
   }
};
</code></pre>
<pre><code>class c{
   double d;
   decltype(d) get_d(){
     return d;
   }
};
</code></pre>
<pre><code>class c{
   double d;
   auto get_d() -&gt; decltype(d){
     return d;
   }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/317695/auto-und-decltype</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 18:49:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317695.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Jun 2013 20:48:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to auto und decltype on Mon, 17 Jun 2013 20:48:28 GMT]]></title><description><![CDATA[<p>wo ist der unterschied zwischen den folgenden 3 beispielen?<br />
so weit ich weiß funktionieren alle gleich und ich bin mir nie sicher wann ich was verwenden soll <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>
<pre><code>class c{
   double d;
   auto get_d(){
     return d;
   }
};
</code></pre>
<pre><code>class c{
   double d;
   decltype(d) get_d(){
     return d;
   }
};
</code></pre>
<pre><code>class c{
   double d;
   auto get_d() -&gt; decltype(d){
     return d;
   }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2331956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331956</guid><dc:creator><![CDATA[gamer8o4]]></dc:creator><pubDate>Mon, 17 Jun 2013 20:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to auto und decltype on Mon, 17 Jun 2013 21:08:17 GMT]]></title><description><![CDATA[<p>Was spricht gegen:</p>
<pre><code>class c{
   double d;
   double get_d(){
     return d;
   }
};
</code></pre>
<p>Der Rueckgabetyp ist eh bekannt und es sind keine Templates involviert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331961</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 17 Jun 2013 21:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to auto und decltype on Mon, 17 Jun 2013 21:08:27 GMT]]></title><description><![CDATA[<p>In deinem Beispiel macht das kein Unterschied.</p>
<p>Generell gilt:<br />
- auto: Kein SFINAE, aber wenig Bloat. Damit kannst du Lambdas zurückgeben. Erst ab C++14<br />
- decltype(d): SFINAE auf d, d.h. wenn d nicht kompiliert fällt die Funktion aus der Liste der Kandidaten.<br />
- auto f-&gt; decltype(d): wie decltype(), nur dass hier &quot;this&quot; und die Parameter bekannt sind und im Ausdruck vorkommen dürfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331962</guid><dc:creator><![CDATA[differenzler]]></dc:creator><pubDate>Mon, 17 Jun 2013 21:08:27 GMT</pubDate></item><item><title><![CDATA[Reply to auto und decltype on Mon, 17 Jun 2013 21:17:14 GMT]]></title><description><![CDATA[<blockquote>
<p>Was spricht gegen:<br />
C++:<br />
class c{<br />
double d;<br />
double get_d(){<br />
return d;<br />
}<br />
};<br />
Der Rueckgabetyp ist eh bekannt und es sind keine Templates involviert.</p>
</blockquote>
<p>Sorry, aber da macht man sich die mühe ein vereinfachtes beispiel zu machen weil man bestimmte c++11 features generell nicht auf einen bestimmten fall bezogen nicht versteht und nicht sein ganzen projekt posten will und dann kommen immernoch solche dämlichen kommentare.</p>
<blockquote>
<p>In deinem Beispiel macht das kein Unterschied.</p>
<p>Generell gilt:<br />
- auto: Kein SFINAE, aber wenig Bloat. Damit kannst du Lambdas zurückgeben. Erst ab C++14<br />
- decltype(d): SFINAE auf d, d.h. wenn d nicht kompiliert fällt die Funktion aus der Liste der Kandidaten.<br />
- auto f-&gt; decltype(d): wie decltype(), nur dass hier &quot;this&quot; und die Parameter bekannt sind und im Ausdruck vorkommen dürfen.</p>
</blockquote>
<p>danke, ich google mal eben ein paar fachausdrücke (SFINAE, usw.), aber ich glaube ich habs verstanden. Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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/2331964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331964</guid><dc:creator><![CDATA[gamer8o4]]></dc:creator><pubDate>Mon, 17 Jun 2013 21:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to auto und decltype on Mon, 17 Jun 2013 21:58:50 GMT]]></title><description><![CDATA[<p>gamer8o4 schrieb:</p>
<blockquote>
<p>kommen immernoch solche dämlichen kommentare</p>
</blockquote>
<p>Willkommen im Internet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331980</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 17 Jun 2013 21:58:50 GMT</pubDate></item><item><title><![CDATA[Reply to auto und decltype on Tue, 18 Jun 2013 05:59:47 GMT]]></title><description><![CDATA[<p>differenzler schrieb:</p>
<blockquote>
<p>- auto: Kein SFINAE,</p>
</blockquote>
<p>Das ist mindestens missverständlich. Bitte erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2332002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2332002</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 18 Jun 2013 05:59:47 GMT</pubDate></item><item><title><![CDATA[Reply to auto und decltype on Tue, 18 Jun 2013 06:58:55 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>differenzler schrieb:</p>
<blockquote>
<p>- auto: Kein SFINAE,</p>
</blockquote>
<p>Das ist mindestens missverständlich. Bitte erklären.</p>
</blockquote>
<p>Ich meine damit, dass</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
template &lt;typename T&gt;
auto f(T t) { std::cout &lt;&lt; t.foo() &lt;&lt; '\n'; }
void f(...) { std::cout &lt;&lt; &quot;bar\n&quot;; }
int main() { f(4); }
</code></pre>
<p>nicht kompiliert, aber</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
template &lt;typename T&gt;
auto f(T t) -&gt; decltype(std::cout &lt;&lt; t.foo() &lt;&lt; '\n') { std::cout &lt;&lt; t.foo() &lt;&lt; '\n'; }
void f(...) { std::cout &lt;&lt; &quot;bar\n&quot;; }
int main() { f(4); }
</code></pre>
<p>schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2332013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2332013</guid><dc:creator><![CDATA[differenzler]]></dc:creator><pubDate>Tue, 18 Jun 2013 06:58:55 GMT</pubDate></item></channel></rss>