<?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[Darf man Standard-Funktionen wie sin und cos überladen?]]></title><description><![CDATA[<p>Moinsen,</p>
<p>ich bastele an einem Großkreisrechner und habe mir dafür Klassen für Längen und Breitengerade geschrieben (um Überläufe abzufangen usw.).</p>
<p>Für trigonometrische Formeln brauche ich jetzt natürlich sinus und cosinus von Längengraden.</p>
<p>Statt</p>
<pre><code class="language-cpp">Position foo; // irgendwo
foo.latitude().sine();
</code></pre>
<p>würde ich gerne</p>
<pre><code class="language-cpp">sin(foo.latitude());
</code></pre>
<p>schreiben können, also eine Überladung</p>
<pre><code class="language-cpp">double sin(const Latitude&amp;);
</code></pre>
<p>anbieten.</p>
<p>Latitude implizit nach double konvertierbar zu machen ginge für den Zweck ja auch, aber das möchte ich aus Gründen der statischen Typfehlererkenung (Längengrad auf Breitengrad addieren oder so) unbedingt vermeiden.</p>
<p>Daher meine Frage: Ist es erlaubt, Funktionenen wie sin, cos, atan, usw. zu überladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285948/darf-man-standard-funktionen-wie-sin-und-cos-überladen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 03:34:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285948.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Apr 2011 14:53:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Darf man Standard-Funktionen wie sin und cos überladen? on Sat, 30 Apr 2011 14:53:43 GMT]]></title><description><![CDATA[<p>Moinsen,</p>
<p>ich bastele an einem Großkreisrechner und habe mir dafür Klassen für Längen und Breitengerade geschrieben (um Überläufe abzufangen usw.).</p>
<p>Für trigonometrische Formeln brauche ich jetzt natürlich sinus und cosinus von Längengraden.</p>
<p>Statt</p>
<pre><code class="language-cpp">Position foo; // irgendwo
foo.latitude().sine();
</code></pre>
<p>würde ich gerne</p>
<pre><code class="language-cpp">sin(foo.latitude());
</code></pre>
<p>schreiben können, also eine Überladung</p>
<pre><code class="language-cpp">double sin(const Latitude&amp;);
</code></pre>
<p>anbieten.</p>
<p>Latitude implizit nach double konvertierbar zu machen ginge für den Zweck ja auch, aber das möchte ich aus Gründen der statischen Typfehlererkenung (Längengrad auf Breitengrad addieren oder so) unbedingt vermeiden.</p>
<p>Daher meine Frage: Ist es erlaubt, Funktionenen wie sin, cos, atan, usw. zu überladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056500</guid><dc:creator><![CDATA[Überlader]]></dc:creator><pubDate>Sat, 30 Apr 2011 14:53:43 GMT</pubDate></item><item><title><![CDATA[Reply to Darf man Standard-Funktionen wie sin und cos überladen? on Sat, 30 Apr 2011 15:08:49 GMT]]></title><description><![CDATA[<p>Klar darfst du das, macht die Standard-Bibliothek schließlich auch (z.B. für complex&lt;&gt; oder valarray&lt;&gt;).</p>
<p>Edit: Natürlich darfst du nichts im Namensraum &quot;std&quot; reinschreiben, aber in deinem eigenen Namensraum ist alles erlaubt, was nicht zu Mehrdeutigkeiten führt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056501</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 30 Apr 2011 15:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to Darf man Standard-Funktionen wie sin und cos überladen? on Sat, 30 Apr 2011 14:58:10 GMT]]></title><description><![CDATA[<p>Musst du nicht. Was auch immer die Funktion latitude zurückgibt, schreib in dessen Namensraum eine Sinusfunktion (usw.). Dank König-Lookup wird diese Funktion automatisch gefunden und aufgerufen.<br />
<a href="http://en.wikipedia.org/wiki/Argument-dependent_name_lookup" rel="nofollow">http://en.wikipedia.org/wiki/Argument-dependent_name_lookup</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056503</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 30 Apr 2011 14:58:10 GMT</pubDate></item><item><title><![CDATA[Reply to Darf man Standard-Funktionen wie sin und cos überladen? on Sat, 30 Apr 2011 20:13:38 GMT]]></title><description><![CDATA[<p>cool, danke für die Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056607</guid><dc:creator><![CDATA[Überlader]]></dc:creator><pubDate>Sat, 30 Apr 2011 20:13:38 GMT</pubDate></item></channel></rss>