<?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[Nach Boost und C++11 prüfen]]></title><description><![CDATA[<p>Ich weiß nicht genau ob das Thema in C++ oder Compiler besser passt. Ich schreibe eine kleine Project mit dem man auf jedem System( windows, linux und MacOS ) leicht Hardwareinformationen auslesen kann.</p>
<p>Ich habe mir dabei gedanken gemacht wie ich die Funktionen schreibe:</p>
<p>WENN(c++11) { }<br />
WENN(boost) { }<br />
C API oder eigene Funktion</p>
<p>Damit das Projekt mit jedem Compiler funktioniert und wenn mann nur eine Funktion braucht nicht gleich boost einbinden muss.</p>
<p>Meine Frage ist ob das so auch funktioniert:</p>
<pre><code>#ifndef SYSINFO_DEFINES_H
#define SYSINFO_DEFINES_H

#include &lt;boost/version.hpp&gt;

#if __cplusplus &gt; 199711L   //c++11
    #define CPP11 1
#endif  //  __cplusplus &gt; 199711L

#ifdef BOOST_VERSION
    #define BOOST_SUPPORTED 1
#endif //BOOST_VERSION

#ifdef BOOST_SUPPORTED

    namespace boostVersion
    {
        static const unsigned major = BOOST_VERSION / 100000;
        static const unsigned minior = BOOST_VERSION / 100 % 1000;
        static const unsigned patch = BOOST_VERSION % 100;
    }

#endif //BOOST_SUPPORTED

#endif // SYSINFO_DEFINES_H
</code></pre>
<p>PS: ist einfach nur ein hobby Projekt um lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326060/nach-boost-und-c-11-prüfen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 09:30:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326060.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 May 2014 13:32:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 13:32:36 GMT]]></title><description><![CDATA[<p>Ich weiß nicht genau ob das Thema in C++ oder Compiler besser passt. Ich schreibe eine kleine Project mit dem man auf jedem System( windows, linux und MacOS ) leicht Hardwareinformationen auslesen kann.</p>
<p>Ich habe mir dabei gedanken gemacht wie ich die Funktionen schreibe:</p>
<p>WENN(c++11) { }<br />
WENN(boost) { }<br />
C API oder eigene Funktion</p>
<p>Damit das Projekt mit jedem Compiler funktioniert und wenn mann nur eine Funktion braucht nicht gleich boost einbinden muss.</p>
<p>Meine Frage ist ob das so auch funktioniert:</p>
<pre><code>#ifndef SYSINFO_DEFINES_H
#define SYSINFO_DEFINES_H

#include &lt;boost/version.hpp&gt;

#if __cplusplus &gt; 199711L   //c++11
    #define CPP11 1
#endif  //  __cplusplus &gt; 199711L

#ifdef BOOST_VERSION
    #define BOOST_SUPPORTED 1
#endif //BOOST_VERSION

#ifdef BOOST_SUPPORTED

    namespace boostVersion
    {
        static const unsigned major = BOOST_VERSION / 100000;
        static const unsigned minior = BOOST_VERSION / 100 % 1000;
        static const unsigned patch = BOOST_VERSION % 100;
    }

#endif //BOOST_SUPPORTED

#endif // SYSINFO_DEFINES_H
</code></pre>
<p>PS: ist einfach nur ein hobby Projekt um lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401608</guid><dc:creator><![CDATA[sysinfo]]></dc:creator><pubDate>Fri, 30 May 2014 13:32:36 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 13:37:32 GMT]]></title><description><![CDATA[<p>Für C++11 gibt es kein zuverlässiges Makro, zumal es sich nicht um einen binären Entscheid handelt -- viele Compiler unterstützen C++11 zu einem Teil. Du musst daher explizit auf die Compilerversionen prüfen, abhängig von den benutzten Sprach- und Bibliotheksfeatures. Oder du benutzt dazu Boost.Config.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401609</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 30 May 2014 13:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 13:45:12 GMT]]></title><description><![CDATA[<p>Include ist include: wenn die Datei nicht vorhanden ist, gibt es einen Fehler. Dein Boosttest funktioniert nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401611</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 30 May 2014 13:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 13:51:31 GMT]]></title><description><![CDATA[<blockquote>
<p>Include ist include: wenn die Datei nicht vorhanden ist, gibt es einen Fehler. Dein Boosttest funktioniert nicht.</p>
</blockquote>
<p>Genau das ist mein Problem gibt es überhaupt eine möglichkeit mit C++ nur libs einzubinden wenn sie vorhanden sind ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401612</guid><dc:creator><![CDATA[sysinfo]]></dc:creator><pubDate>Fri, 30 May 2014 13:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 13:55:12 GMT]]></title><description><![CDATA[<p>sysinfo schrieb:</p>
<blockquote>
<p>Genau das ist mein Problem gibt es überhaupt eine möglichkeit mit C++ nur libs einzubinden wenn sie vorhanden sind ?</p>
</blockquote>
<p>So allgemein nicht. Was heisst &quot;vorhanden&quot;? Irgendwo auf dem Computer des Benutzers? Compiler kennt den Include-Pfad?</p>
<p>Ich würde hier nicht zu viele implizite Features einbauen. Lass den Entwickler entsprechend konfigurieren, z.B. durch das Setzen eines Makros. Mit CMake hast durch Find-Module du mehr Möglichkeiten, andere Bibliotheken zu erkennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401613</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 30 May 2014 13:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 13:57:52 GMT]]></title><description><![CDATA[<p>sysinfo schrieb:</p>
<blockquote>
<blockquote>
<p>Include ist include: wenn die Datei nicht vorhanden ist, gibt es einen Fehler. Dein Boosttest funktioniert nicht.</p>
</blockquote>
<p>Genau das ist mein Problem gibt es überhaupt eine möglichkeit mit C++ nur libs einzubinden wenn sie vorhanden sind ?</p>
</blockquote>
<p>Nein! Deswegen haben ja viele Opensourceprojekte configure Scripte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401614</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 30 May 2014 13:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 14:03:47 GMT]]></title><description><![CDATA[<p>Mach separate Header für Dinge, die Boost voraussetzen. Der Benutzer weiß am besten, ob er die einbinden kann.<br />
EDIT: Wenn du dein Programm kompilierst, benutze etwas fertiges wie <code>find_package(Boost)</code> in CMake.</p>
<p>Für die Verfügbarkeit mancher C++-Features gibt es Makros in Boost.</p>
<p>Man kann auch selber die relevanten Compiler-Makros auswerten, um die benötigten Feature-Makros zu definieren. Mit <code>__GNUC__</code> , <code>__GNUC_MINOR__</code> und <code>_MSC_VER</code> kommt man schon recht weit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401615</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 30 May 2014 14:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Nach Boost und C++11 prüfen on Fri, 30 May 2014 15:40:23 GMT]]></title><description><![CDATA[<p>sysinfo schrieb:</p>
<blockquote>
<p>WENN(c++11) { }<br />
WENN(boost) { }</p>
</blockquote>
<p>Was passiert denn wenn nicht? Entweder du machst WENN(c++11){}SONST{}, dann brauchst du auf jeden Fall einen SONST-Block der auch ohne c++11 funktioniert und damit ist der WENN(c++11)-Block überflüssig, oder du machst sowas wie WENN(c++11){}SONST{error: geht nicht}. Dann brauchst du auch keine Unterscheidung, dann nimmst du einfach c++11 und der Compiler schluckt es oder sagt von sich aus dass es nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401626</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Fri, 30 May 2014 15:40:23 GMT</pubDate></item></channel></rss>