<?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[std::sin und auto?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein Problem welches ich gerade nicht wirklich nachvollziehen kann. Und zwar ergibt bei mir:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cmath&gt;
#include &lt;complex&gt;

int main() {
    auto sin_func = std::sin&lt;double&gt;;
    std::cout &lt;&lt; sin_func(1.0) &lt;&lt; '\n'; // Output: (0.841471,0)
}
</code></pre>
<p>Das ist aber nicht das was ich will bzw. erwartet hätte, schließlich will ich einfach eine sinus funktion die ein <code>double</code> nimmt und ein <code>double</code> zurückgibt. Statt dessen erhalte ich eine Sinus Funktion die ein <code>std::complex&lt;double&gt;</code> nimmt und ein eben solches zurückgibt!</p>
<p>Wie kommt das bzw. wie soll man das sonst machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330456/std-sin-und-auto</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 11:35:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330456.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Jan 2015 13:29:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::sin und auto? on Sun, 11 Jan 2015 13:32:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein Problem welches ich gerade nicht wirklich nachvollziehen kann. Und zwar ergibt bei mir:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cmath&gt;
#include &lt;complex&gt;

int main() {
    auto sin_func = std::sin&lt;double&gt;;
    std::cout &lt;&lt; sin_func(1.0) &lt;&lt; '\n'; // Output: (0.841471,0)
}
</code></pre>
<p>Das ist aber nicht das was ich will bzw. erwartet hätte, schließlich will ich einfach eine sinus funktion die ein <code>double</code> nimmt und ein <code>double</code> zurückgibt. Statt dessen erhalte ich eine Sinus Funktion die ein <code>std::complex&lt;double&gt;</code> nimmt und ein eben solches zurückgibt!</p>
<p>Wie kommt das bzw. wie soll man das sonst machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2436965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436965</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Sun, 11 Jan 2015 13:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to std::sin und auto? on Sun, 11 Jan 2015 13:38:10 GMT]]></title><description><![CDATA[<p>Nun, das Problem ist, dass es folgende Deklarationen von std::sin gibt:</p>
<pre><code>float sin( float arg );	
double sin( double arg );	
long double sin( long double arg );	
double sin( Integral arg ); // idR ein Template, was via enable_if, dafür sorgt, dass nur Integer Typen angenommen werden
template&lt; class T &gt;
complex&lt;T&gt; sin( const complex&lt;T&gt;&amp; z );
</code></pre>
<p>Wenn du nun std::sin&lt;double&gt; schreibst, sucht der Compiler eine Templatefunktion, wo man ein double reinstecken kann. Die einzige, die in Frage kommt, ist die complex. Die anderen sind keine Templates.<br />
Du musst also casten:</p>
<pre><code>auto fnc = static_cast&lt;double(*)(double)&gt;(std::sin);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2436966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436966</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 11 Jan 2015 13:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to std::sin und auto? on Sun, 11 Jan 2015 13:58:36 GMT]]></title><description><![CDATA[<pre><code>double (*fnc)(double) = std::sin;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2436967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436967</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 11 Jan 2015 13:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::sin und auto? on Sun, 11 Jan 2015 15:07:56 GMT]]></title><description><![CDATA[<p>Ok, das macht Sinn, vielen Dank <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="👍"
    /></p>
<p>Wobei sich mir der Sinn einer template sinus-Funktion die nur integer Werte annehmen kann irgendwie nicht erschließt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2436977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436977</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Sun, 11 Jan 2015 15:07:56 GMT</pubDate></item></channel></rss>