<?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[Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich stelle gerade ein Projekt von 32 Bit auf 64 Bit um. Und habe dazu mehrere Fragen:</p>
<p>1. In meinem Code benutze ich die Boost Graph Library, in meinem Code (32 Bit) habe ich folgende Zeile:</p>
<pre><code>const unsigned int test1 = boost::in_degree(n1, g);
</code></pre>
<p>Nach dem umstellen bekomme ich auf einmal die Warnung:</p>
<pre><code>warning C4267: 'Initialisierung': Konvertierung von 'size_t' nach 'const unsigned int', Datenverlust möglich
</code></pre>
<p>Das verwirrt mich sehr, zum ersten weil ich immer dachte das size_t nur dazu verwendet werden sollte Ergebnise von sizeof() zu representieren und zum zweiten warum gab es die Warnung nicht im 32 Bit Projekt. Weil size_t zu unsigned int kann ja auch nicht richtig sein.</p>
<p>Da ich C++11 benutze schreibe ich jetzt immer:</p>
<pre><code>const auto test1 = boost::in_degree(n1, g);
</code></pre>
<p>Ist das die beste Loesung?</p>
<p>2. In meinem Projekt benutze ich mehrere Boost Library Header Dateien, wenn ich das Project umstellen muss man dann auch spezielle 64 Bit Header Dateien verwenden, oder ist das nicht noetig?</p>
<p>Besten Dank,<br />
<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/topic/322337/projekt-umstellen-32-bit-gt-64-bit-2-fragen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 10:30:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322337.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Dec 2013 04:25:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 04:25:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich stelle gerade ein Projekt von 32 Bit auf 64 Bit um. Und habe dazu mehrere Fragen:</p>
<p>1. In meinem Code benutze ich die Boost Graph Library, in meinem Code (32 Bit) habe ich folgende Zeile:</p>
<pre><code>const unsigned int test1 = boost::in_degree(n1, g);
</code></pre>
<p>Nach dem umstellen bekomme ich auf einmal die Warnung:</p>
<pre><code>warning C4267: 'Initialisierung': Konvertierung von 'size_t' nach 'const unsigned int', Datenverlust möglich
</code></pre>
<p>Das verwirrt mich sehr, zum ersten weil ich immer dachte das size_t nur dazu verwendet werden sollte Ergebnise von sizeof() zu representieren und zum zweiten warum gab es die Warnung nicht im 32 Bit Projekt. Weil size_t zu unsigned int kann ja auch nicht richtig sein.</p>
<p>Da ich C++11 benutze schreibe ich jetzt immer:</p>
<pre><code>const auto test1 = boost::in_degree(n1, g);
</code></pre>
<p>Ist das die beste Loesung?</p>
<p>2. In meinem Projekt benutze ich mehrere Boost Library Header Dateien, wenn ich das Project umstellen muss man dann auch spezielle 64 Bit Header Dateien verwenden, oder ist das nicht noetig?</p>
<p>Besten Dank,<br />
<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/2372096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372096</guid><dc:creator><![CDATA[MokuYobi]]></dc:creator><pubDate>Mon, 16 Dec 2013 04:25:01 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 08:06:27 GMT]]></title><description><![CDATA[<p>MokuYobi schrieb:</p>
<blockquote>
<p>Das verwirrt mich sehr, zum ersten weil ich immer dachte das size_t nur dazu verwendet werden sollte Ergebnise von sizeof() zu representieren</p>
</blockquote>
<p>Nein, size_t ist einfach ein size-Typ. in_degree gibt ein Ergebnis vom Typ degree_size_type zurück.</p>
<blockquote>
<p>und zum zweiten warum gab es die Warnung nicht im 32 Bit Projekt. Weil size_t zu unsigned int kann ja auch nicht richtig sein.</p>
</blockquote>
<p>Vmtl. weil dort size_t ein typedef für unsigned int ist.</p>
<blockquote>
<p>Da ich C++11 benutze schreibe ich jetzt immer:</p>
<pre><code>const auto test1 = boost::in_degree(n1, g);
</code></pre>
<p>Ist das die beste Loesung?</p>
</blockquote>
<p>Sieht fuer mich ok aus.</p>
<blockquote>
<p>2. In meinem Projekt benutze ich mehrere Boost Library Header Dateien, wenn ich das Project umstellen muss man dann auch spezielle 64 Bit Header Dateien verwenden, oder ist das nicht noetig?</p>
</blockquote>
<p>Nein, eher nicht. Kann höchstens sein, dass du die Libraries selbst für dein 64-Bit-System kompilieren (bzw. herunterladen) musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372101</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Mon, 16 Dec 2013 08:06:27 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 10:53:02 GMT]]></title><description><![CDATA[<p>Danke fuer die Info. <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="🙂"
    /><br />
Was genau ist den ein size type? Heisst das ich kann problemlos in meinem Program unsigned int durch size_t ersetzne?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372134</guid><dc:creator><![CDATA[MokuYobi]]></dc:creator><pubDate>Mon, 16 Dec 2013 10:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 10:59:02 GMT]]></title><description><![CDATA[<p>MokuYobi schrieb:</p>
<blockquote>
<p>Danke fuer die Info. <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="🙂"
    /><br />
Was genau ist den ein size type? Heisst das ich kann problemlos in meinem Program unsigned int durch size_t ersetzne?</p>
</blockquote>
<p>mit einem std::size_t kann man die grösse jeder möglichen klasse und jedes möglichen arrays speichern. ausserdem kann man auf vielen plattformen jede nicht-member adresse in einem std::size_t speichern. quelle: <a href="http://en.cppreference.com/w/cpp/types/size_t" rel="nofollow">http://en.cppreference.com/w/cpp/types/size_t</a></p>
<p>ich persönlich schreibe bei all meinen projekten oben hin:</p>
<pre><code>#include &lt;cstddef&gt;
namespace xy // Was auch immer es für ein Projekt ist an dem ich arbeite
{
    typedef ::std::size_t SizeType;

    // ...
}
</code></pre>
<p>und ich nutze den typ für alles was ich schreibe, for-zähler, indices, grössen, etc. etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372137</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Mon, 16 Dec 2013 10:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 12:00:32 GMT]]></title><description><![CDATA[<p>asfdlol schrieb:</p>
<blockquote>
<pre><code>typedef ::std::size_t SizeType;
</code></pre>
</blockquote>
<p>Gibts bei euch Leute, die lokale Namensräume namens <code>std</code> definieren, sodass du auf Nummer sicher gehen musst? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Das :: am Anfang sieht man ab und zu, aber in den wenigsten Fällen ist es nötig. Aber davon abgesehen, gibts einen Grund wieso du nicht direkt <code>std::size_t</code> verwendest? Du kannst ja trotzdem nicht einfach den Typ austauschen, weil du dann an vielen Stellen mit der STL inkompatibel bist. Auf der anderen Seite machst du den Code schwerer zu lesen für andere Programmierer, die dein <code>SizeType</code> nicht kennen. Also... wo liegt der Vorteil?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372153</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 16 Dec 2013 12:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 13:11:22 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>asfdlol schrieb:</p>
<blockquote>
<pre><code>typedef ::std::size_t SizeType;
</code></pre>
</blockquote>
<p>Gibts bei euch Leute, die lokale Namensräume namens <code>std</code> definieren, sodass du auf Nummer sicher gehen musst? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>ach, ich bin nur ein hobby-&quot;programmierer&quot;, somit kann ich mit sicherheit sagen, dass das niemand tut. ich schreibe das wenn ich in namespaces auf andere libs zugreife aus gewohnheit und aus konsistenz hin.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Aber davon abgesehen, gibts einen Grund wieso du nicht direkt <code>std::size_t</code> verwendest? Du kannst ja trotzdem nicht einfach den Typ austauschen, weil du dann an vielen Stellen mit der STL inkompatibel bist. Auf der anderen Seite machst du den Code schwerer zu lesen für andere Programmierer, die dein <code>SizeType</code> nicht kennen. Also... wo liegt der Vorteil?</p>
</blockquote>
<p>objektive argumente die mich bekräftigen habe ich dafür nicht, es ist einfach mein persönlicher stil und mir geht SizeType besser von den händen als std::size_t. ausserdem finde ich pascalcase einfach hübsch. ausserdem mache ich typedefs für &gt;90% der typen (die nicht built-in sind (std::size_t ist auch ein typedef auf einen built-in-typen, ich weiss, der name selbst ist aber nicht build-in)) bevor ich sie verwende.</p>
<p>mich an andere code-konventionen anzupassen (damit ist auch gemeint unnötige führende :: wegzulassen und std::size_t statt ein typedef zu nutzen) kann ich allenfalls auch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372168</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Mon, 16 Dec 2013 13:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Umstellen: 32 Bit -&amp;gt; 64 Bit, 2 Fragen on Mon, 16 Dec 2013 13:49:58 GMT]]></title><description><![CDATA[<p>Wenn du es für dich selbst machst, ist es natürlich dir überlassen. Ich denke nur, dass solche Konventionen allfällige Mitentwickler (auch hobbymässig) oder Benutzer (im Fall einer Bibliothek) verwirren könnten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372179</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 16 Dec 2013 13:49:58 GMT</pubDate></item></channel></rss>