<?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[Boost-Units]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne Boost Units nutzen, um mich der ständigen Uneindeutigkeiten bzgl. Einheiten zu entledigen. Allerdings bereitet mir der Umgang damit Probleme - wirklich Hilfreiches habe ich auch nicht im Internet gefunden.</p>
<p>Beispielhaft sind hier mal Grad und Radiant definiert:</p>
<pre><code>typedef boost::units::si::plane_angle radian;
using boost::units::si::radians;

#include &lt;boost/units/systems/angle/degrees.hpp&gt;
typedef boost::units::degree::plane_angle degree;
using boost::units::degree::degrees;

typedef boost::units::quantity&lt;radian&gt; Radian;
typedef boost::units::quantity&lt;degree&gt; Degree;

Radian operator+(const Radian &amp;rad, const Degree &amp;deg)  { return Radian(deg) + rad; }
Radian operator+(const Degree &amp;deg, const Radian &amp;rad)  { return Radian(deg) + rad; }
</code></pre>
<p>Wenn ich nun innerhalb des Einheitensystems rechnen will, klappt das problemlos:</p>
<pre><code>Degree d1(10.f*degrees);
Degree d2(20.f*degrees);
cout &lt;&lt; (d1+d2) &lt;&lt; endl;
</code></pre>
<p>Ausgabe:</p>
<pre><code>30 deg
</code></pre>
<p>Wenn ich nun aber einen konstanten Faktor in die Rechnung einbeziehen will, z.B. ein Float, dann bekomme ich Probleme. Ich habe leider auch keine Ahnung, wie ich die Einheit in eine normale Zahl zurück-casten kann. Ich hoffe ihr könnt meine Verständnisprobleme schnell beseitigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/314456/boost-units</link><generator>RSS for Node</generator><lastBuildDate>Sat, 01 Aug 2026 04:41:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/314456.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Mar 2013 20:50:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost-Units on Sat, 02 Mar 2013 20:50:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne Boost Units nutzen, um mich der ständigen Uneindeutigkeiten bzgl. Einheiten zu entledigen. Allerdings bereitet mir der Umgang damit Probleme - wirklich Hilfreiches habe ich auch nicht im Internet gefunden.</p>
<p>Beispielhaft sind hier mal Grad und Radiant definiert:</p>
<pre><code>typedef boost::units::si::plane_angle radian;
using boost::units::si::radians;

#include &lt;boost/units/systems/angle/degrees.hpp&gt;
typedef boost::units::degree::plane_angle degree;
using boost::units::degree::degrees;

typedef boost::units::quantity&lt;radian&gt; Radian;
typedef boost::units::quantity&lt;degree&gt; Degree;

Radian operator+(const Radian &amp;rad, const Degree &amp;deg)  { return Radian(deg) + rad; }
Radian operator+(const Degree &amp;deg, const Radian &amp;rad)  { return Radian(deg) + rad; }
</code></pre>
<p>Wenn ich nun innerhalb des Einheitensystems rechnen will, klappt das problemlos:</p>
<pre><code>Degree d1(10.f*degrees);
Degree d2(20.f*degrees);
cout &lt;&lt; (d1+d2) &lt;&lt; endl;
</code></pre>
<p>Ausgabe:</p>
<pre><code>30 deg
</code></pre>
<p>Wenn ich nun aber einen konstanten Faktor in die Rechnung einbeziehen will, z.B. ein Float, dann bekomme ich Probleme. Ich habe leider auch keine Ahnung, wie ich die Einheit in eine normale Zahl zurück-casten kann. Ich hoffe ihr könnt meine Verständnisprobleme schnell beseitigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2303702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2303702</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Sat, 02 Mar 2013 20:50:45 GMT</pubDate></item><item><title><![CDATA[Reply to Boost-Units on Thu, 07 Mar 2013 00:23:39 GMT]]></title><description><![CDATA[<p>Ok, hab es herausgefunden:</p>
<pre><code>Degree deg(35.f*degrees);
float angle = static_cast&lt;float&gt;(deg.value())
</code></pre>
<p><strong>Edit:</strong> Den Cast kann man sich auch einfach sparen an dieser Stelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2303934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2303934</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Thu, 07 Mar 2013 00:23:39 GMT</pubDate></item></channel></rss>