<?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[typedef nicht zuweisbar machen]]></title><description><![CDATA[<p>Was kann man machen, dass es verboten ist unterschiedliche typedefs sich zuzuweisen?<br />
Das soll z.B. nicht compilieren.</p>
<pre><code class="language-cpp">typedef long long myID;
typedef unsigned int mySIZE;

int main()
{
    myID id = 123456;
    mySIZE s = 6;
    id = s; //hätte gern hier compile error

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/291419/typedef-nicht-zuweisbar-machen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 20:33:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/291419.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Aug 2011 19:14:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Wed, 17 Aug 2011 19:14:05 GMT]]></title><description><![CDATA[<p>Was kann man machen, dass es verboten ist unterschiedliche typedefs sich zuzuweisen?<br />
Das soll z.B. nicht compilieren.</p>
<pre><code class="language-cpp">typedef long long myID;
typedef unsigned int mySIZE;

int main()
{
    myID id = 123456;
    mySIZE s = 6;
    id = s; //hätte gern hier compile error

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2107358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107358</guid><dc:creator><![CDATA[type Def]]></dc:creator><pubDate>Wed, 17 Aug 2011 19:14:05 GMT</pubDate></item><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Wed, 17 Aug 2011 19:16:13 GMT]]></title><description><![CDATA[<p>Ein typedef ist nur eine andere Bezeichnung für einen Datentyp, d.h. der Compiler sieht keinen Unterschied zwischen unsigned int und mySIZE. Wenn du die Möglichkeiten der Zuweisung einschränken willst, müsstest du schon eigene Wrapper-Klassen schreiben, die das ganze kapseln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2107360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107360</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 17 Aug 2011 19:16:13 GMT</pubDate></item><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Wed, 17 Aug 2011 20:21:44 GMT]]></title><description><![CDATA[<p>Vielleicht liessen sich enums verwenden.</p>
<p>BTW: ist es mit C++0x legal einen enum mit explizitem Basistypen zu machen, und da per Cast Werte reinzustecken die nicht als Enum-Konstanten definiert sind? Also sowas:</p>
<pre><code class="language-cpp">enum class A : int { nada = 1 };
enum class B : int { nada = 2 };
int main()
{
    A a = A::nada;
    B b = B::nada;
//  a = b; // Der gewünschte fehler: cannot convert B to A
    a = static_cast&lt;A&gt;(123); // &lt;- Ist dashier legal? (Compilieren tut es mit GCC, ohne Warning)
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2107376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107376</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 17 Aug 2011 20:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Wed, 17 Aug 2011 20:38:23 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Vielleicht liessen sich enums verwenden.</p>
<p>BTW: ist es mit C++0x legal einen enum mit explizitem Basistypen zu machen, und da per Cast Werte reinzustecken die nicht als Enum-Konstanten definiert sind? Also sowas:</p>
<pre><code class="language-cpp">enum class A : int { nada = 1 };
enum class B : int { nada = 2 };
int main()
{
    A a = A::nada;
    B b = B::nada;
//  a = b; // Der gewünschte fehler: cannot convert B to A
    a = static_cast&lt;A&gt;(123); // &lt;- Ist dashier legal? (Compilieren tut es mit GCC, ohne Warning)
}
</code></pre>
</blockquote>
<p>Legal ist so ein Cast immer, falls der konvertierte Wert nicht hineinpasst, ist das Ergebnis bloß unspezifiziert (5.2.9/10):<br />
Er hat in diesem Fall auch das gewünschte Ergebnis, der Wertbereich einer fixierten Aufzählung ist der des zugrundeliegenden Typs (7.2/7).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2107383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107383</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 17 Aug 2011 20:38:23 GMT</pubDate></item><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Wed, 17 Aug 2011 20:46:53 GMT]]></title><description><![CDATA[<p>Ja, die bessere Frage wäre gewesen: ist es &quot;OK&quot; sich darauf zu verlassen, dass der Wert bei <code>int -&gt; enum_type -&gt; int</code> hinten wieder unverändert rauskommt, wenn die &quot;Basis&quot; von <code>enum_type</code> ein <code>int</code> ist.</p>
<p>Naja, cool, damit kann man ja was anfangen <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/2107386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107386</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 17 Aug 2011 20:46:53 GMT</pubDate></item><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Thu, 18 Aug 2011 12:26:37 GMT]]></title><description><![CDATA[<p>Man könnte auch einfach die id const machen. Sooft dürfte die sich nicht ändern? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">typedef const long long myID;
typedef unsigned int mySIZE;

int main()
{
    myID id = 123456;
    mySIZE s = 6;
    id = s; //hätte gern hier compile error

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2107573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107573</guid><dc:creator><![CDATA[bmario]]></dc:creator><pubDate>Thu, 18 Aug 2011 12:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to typedef nicht zuweisbar machen on Thu, 18 Aug 2011 12:27:19 GMT]]></title><description><![CDATA[<p>bmario schrieb:</p>
<blockquote>
<p>Man könnte auch einfach die id const machen. Sooft dürfte die sich nicht ändern? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">typedef const long long myID;
typedef unsigned int mySIZE;

int main()
{
    myID id = 123456;
    mySIZE s = 6;
    id = s; //hätte gern hier compile error

    return 0;
}
</code></pre>
</blockquote>
<p><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="😃"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2107574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2107574</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 18 Aug 2011 12:27:19 GMT</pubDate></item></channel></rss>