<?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[endian zur Compilezeit detektieren]]></title><description><![CDATA[<p>Hallo Profies,</p>
<p>hat irgendjemand eine Idee wie man den <a href="http://de.wikipedia.org/wiki/Byte-Reihenfolge" rel="nofollow">Endian (big endian, littel endian)</a> zur Compilezeit erkennen kann. Mir schwebt so was vor wie eine struct is_little_endian {??}, die dann als Template-Argument in einem <a href="http://www.boost.org/doc/libs/1_42_0/libs/utility/enable_if.html" rel="nofollow">boost::enable_if</a>-Ausdruck landet.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263033/endian-zur-compilezeit-detektieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 01:28:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263033.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Mar 2010 09:01:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 09:01:26 GMT]]></title><description><![CDATA[<p>Hallo Profies,</p>
<p>hat irgendjemand eine Idee wie man den <a href="http://de.wikipedia.org/wiki/Byte-Reihenfolge" rel="nofollow">Endian (big endian, littel endian)</a> zur Compilezeit erkennen kann. Mir schwebt so was vor wie eine struct is_little_endian {??}, die dann als Template-Argument in einem <a href="http://www.boost.org/doc/libs/1_42_0/libs/utility/enable_if.html" rel="nofollow">boost::enable_if</a>-Ausdruck landet.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869117</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 15 Mar 2010 09:01:26 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 09:15:17 GMT]]></title><description><![CDATA[<p>Da ein Kompiler meistens zuerst in eine Zwischensprache übersetzt und es von dieser dann auf einen Littel- und/oder Big-Endian Zielrechner gehen kann, dürfte es eher unwahrscheinlich sein, dass man diese Informationen herausbekommt. Die Templates werden schliesslich ausgewertet, bevor diese Information überhaupt vorhanden ist.</p>
<p>Es wäre höchstens über Makros denkbar, welche der Kompiler zur Verfügung stellt, womit das eingestellte Zielsystem angegeben wird. Aber dies wäre dann natürlich kompilerabhängig.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869124</guid><dc:creator><![CDATA[Dravere_logoff]]></dc:creator><pubDate>Mon, 15 Mar 2010 09:15:17 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 09:57:40 GMT]]></title><description><![CDATA[<p>google mal nach &quot;boost endian&quot; - es gab wohl mal einen Ansatz, ein entsprechendes Bibliothekchen zu schreiben, der aber (wegen fehlender Features in C++?) nicht weiter verfolgt wurde. Wenn die das nicht hinbekommen wirds schwierig denk ich mal <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/1869141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869141</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 15 Mar 2010 09:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 11:09:50 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: Der Tipp war gut. Es existiert die Datei <a href="http://www.boost.org/doc/libs/1_40_0/boost/detail/endian.hpp" rel="nofollow">boost/detail/endian.hpp</a>, in der je nach verwendeter Plattform BOOST_LITTLE/BIG_ENDIAN gesetzt wird.<br />
Das wird dort einfach mit #if defined( 'die eine Plattform' ) #elif defined( 'die andere Plattform' ) gelöst. Wie Dravere schon vermutet hat, dürfte das wohl der einzige gangbare Weg sein.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869175</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 15 Mar 2010 11:09:50 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 12:35:06 GMT]]></title><description><![CDATA[<p>Sowas wird oft vor dem kompilieren beim configure überprüft. Vielleicht ist das ja eine Option für dich. Einige Build Systeme bieten soetwas an. Es ein kleines Programm bei dem der Unterschied deutlich ist compiliert und ausgeführt. Je nach Ausgabe wird dann das Define in einem Header gesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869228</guid><dc:creator><![CDATA[Tobiking2]]></dc:creator><pubDate>Mon, 15 Mar 2010 12:35:06 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 12:37:54 GMT]]></title><description><![CDATA[<p>Naja mit dem Boost-Header hat er das ja für die gängigsten Systeme schon, ohne dass er da extra noch n Programm im configure laufen lassen muss...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869231</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 15 Mar 2010 12:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 12:58:33 GMT]]></title><description><![CDATA[<p>Wieso geht sowas nicht?</p>
<pre><code class="language-cpp">static bool isLittleEndian()
{
    static const short int word = 0x0001;
    static const char* byte = reinterpret_cast&lt;const char *&gt;(&amp;word);
    return (byte[0] ? true : false);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1869242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869242</guid><dc:creator><![CDATA[EndianFrage]]></dc:creator><pubDate>Mon, 15 Mar 2010 12:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 13:02:50 GMT]]></title><description><![CDATA[<p>Weil das reinterpret cast auf die Adresse erst zur Laufzeit ausgwertet wird. Zur Compile Zeit hat word noch keine Adresse, die man zu irgendwas benutzen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869245</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 15 Mar 2010 13:02:50 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 16:57:19 GMT]]></title><description><![CDATA[<p>ups, klar!<br />
Frage verfehlt, setzen sechs <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/1869416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869416</guid><dc:creator><![CDATA[EndianFrage]]></dc:creator><pubDate>Mon, 15 Mar 2010 16:57:19 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 17:11:24 GMT]]></title><description><![CDATA[<p>Man kann das Programm aber in seinen build-Prozess einbinden und abhaengig vom Ergebnis einige defines des Kompilers setzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869427</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 15 Mar 2010 17:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to endian zur Compilezeit detektieren on Mon, 15 Mar 2010 17:19:51 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Man kann das Programm aber in seinen build-Prozess einbinden und abhaengig vom Ergebnis einige defines des Kompilers setzen.</p>
</blockquote>
<p>Und was ist mit Cross-Compilation? Einfach die defines benutzen und gut ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869429</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Mon, 15 Mar 2010 17:19:51 GMT</pubDate></item></channel></rss>