<?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[simpler wrapper um built in type]]></title><description><![CDATA[<p>hallo,</p>
<p>ich brauche ein (unterscheidbares) typedef für mehrere typen:<br />
tag, monat, jahr.</p>
<p>ich suche eine elegantere lösung, als 3 klassen mit jeweils 20 selbst überladenen operatoren zu schreiben. (auch mit makros fällt mir da nichts eleganteres ein)<br />
was nicht geht, sind einfache typedefs, da auch folgendes gehen sollte:</p>
<pre><code class="language-cpp">struct date_t
{
  day_t day;
  month_t month;
  year_t year;

  date_t&amp; operator+=(day_t to_add);
  date_t&amp; operator+=(month_t to_add);
  date_t&amp; operator+=(year_t to_add);
};
</code></pre>
<p>hat jmd ne bessere idee als die 3 klassen mit je 100den zeilen?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/309143/simpler-wrapper-um-built-in-type</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 12:09:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/309143.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Oct 2012 10:32:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 11:02:55 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich brauche ein (unterscheidbares) typedef für mehrere typen:<br />
tag, monat, jahr.</p>
<p>ich suche eine elegantere lösung, als 3 klassen mit jeweils 20 selbst überladenen operatoren zu schreiben. (auch mit makros fällt mir da nichts eleganteres ein)<br />
was nicht geht, sind einfache typedefs, da auch folgendes gehen sollte:</p>
<pre><code class="language-cpp">struct date_t
{
  day_t day;
  month_t month;
  year_t year;

  date_t&amp; operator+=(day_t to_add);
  date_t&amp; operator+=(month_t to_add);
  date_t&amp; operator+=(year_t to_add);
};
</code></pre>
<p>hat jmd ne bessere idee als die 3 klassen mit je 100den zeilen?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260620</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Oct 2012 11:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 10:35:44 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>hat jmd ne bessere idee als die 3 klassen mit je 100den zeilen?</p>
</blockquote>
<p>Such mal nach boost's BOOST_STRONG_TYPEDEF, das dürfte in deine Richtung gehen <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/2260623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260623</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 15 Oct 2012 10:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 10:42:11 GMT]]></title><description><![CDATA[<p>mit anderen worten: es gibt keine elegante möglichkeit?! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2260628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260628</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Oct 2012 10:42:11 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 10:45:03 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>mit anderen worten: es gibt keine elegante möglichkeit?! <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>
</blockquote>
<p>Elegant ist Geschmackssache. Ich halte das Ding für recht elegant, auch wenns ein Makro ist <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/2260631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260631</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 15 Oct 2012 10:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 10:53:30 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>unskilled schrieb:</p>
<blockquote>
<p>mit anderen worten: es gibt keine elegante möglichkeit?! <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>
</blockquote>
<p>Elegant ist Geschmackssache. Ich halte das Ding für recht elegant, auch wenns ein Makro ist <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>
</blockquote>
<p>neja... ich verwende dann nur dafür boost _und_ muss trotzdem noch mathematische operatoren (wie z.bsp. op%) überladen.<br />
gefällt mir alles nicht <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="😕"
    /> aber werds wo einfach nachbauen müssen <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>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260636</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Oct 2012 10:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 11:11:49 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>neja... ich verwende dann nur dafür boost _und_ muss trotzdem noch mathematische operatoren (wie z.bsp. op%) überladen.</p>
</blockquote>
<p>warum? dafür gibts doch den eingebauten Konvertierungsoperator? Oder welche mathematischen Operatoren meinst du?</p>
<p>(btw., wenn du doch mathematische Operatoren implementieren musst, schau dir boost.Operators an, gibt auch einen Artikel im Magazin...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260647</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 15 Oct 2012 11:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 12:24:45 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>(btw., wenn du doch mathematische Operatoren implementieren musst, schau dir boost.Operators an, gibt auch einen Artikel im Magazin...)</p>
</blockquote>
<p>muss ich nicht. muss nur dafür sorgen, dass die vorhandenen aufgerufen werden. boost.operators kenn ich.</p>
<p>jo, klar. wenn ich den einfach überlade und darauf hoffe, dass er verwendet wird, kann sich der compiler nicht zwischen dem built in op und dem (nicht vorhandenen) op entscheiden.<br />
und ich mag nicht (als nutzer der &quot;lib&quot;) jedes mal von hand konvertieren müssen, wenn ich rechnen möchte...</p>
<p>hier noch mal kurz die anforderungen:</p>
<pre><code class="language-cpp">//jeweils integrale datentypen
//operatoren: ++, --, +, -(binär), *, /, %
//operatoren: ==, !=, &lt;, &lt;=, &gt;=, &gt;
day_t;
month_t;
year_t;

//darüber hinaus müssen die typen unterscheidbar sein:
void foo(month_t);
void bar(year_t);
</code></pre>
<p>ich brauche also nen strong-typedef, dass alle operatoren des zu grunde liegenden numerischen typs aufruft.<br />
wie ein <code>strong_typedef</code> , welches von <code>ordered_euclidian_ring_operators</code> oder so ableiten müsste. nur eben, dass ich dann noch immer operatoren wrappen müsste.<br />
also bau ich mir einfach ne wrapper-basis-klasse, von der ich die 3 typen erben lasse.</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260675</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Oct 2012 12:24:45 GMT</pubDate></item><item><title><![CDATA[Reply to simpler wrapper um built in type on Mon, 15 Oct 2012 16:41:50 GMT]]></title><description><![CDATA[<p>so wie beschrieben klappts ganz gut. sind zwar auch wieder paar unnötige zeilen, aber naja...<br />
sieht jetzt in etwa so aus:</p>
<pre><code class="language-cpp">template&lt;class BASE, class NUM_TYPE&gt;
struct wrapper
{
  wrapper(NUM_TYPE value_) : value(value_) {}

  friend bool operator==(BASE lhs, BASE rhs) {return lhs.value == rhs.value;}
/*...*/
private:
  NUM_TYPE value;
};

struct type : wrapper&lt;type, unsigned&gt;
{
  type(unsigned value_) : wrapper&lt;type, unsigned&gt;(value_) {}
};
</code></pre>
<p>bis auf die tatsache, dass gcc mit <code>-Weffc++</code> nun warnt, weil wrapper keinen virtuellen dtor hat, aber aus irgend nem grund glaubt, dass das jede (öffentliche) basisklasse bräuchte. ziemlich gut^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260772</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Oct 2012 16:41:50 GMT</pubDate></item></channel></rss>