<?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[C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich programmiere gerade eine Library, und da sie nun so gut wie fertiggestellt ist und ich sie in zwei Versionen veröffentlichen wollte (einmal 03 Standard; einmal 11er Standard), habe ich noch ein paar Fragen bezüglich den Unterschieden zwischen C++03 und C++11. Eines muss jedoch berücksichtigt werden: Auch wenn man einige meiner Probleme mit anderen diversen Libraries (z.B. boost) lösen könnte, verzichte ich darauf, weil ich ganz einfach nicht will, dass meine Library von anderen Libraries abhängig ist. Schließlich bekommt das schlussendlich der Anwender der Library zu spüren, wenn er die benötigten Libraries noch nicht auf seinem PC installiert hat. Ich leg mal los:</p>
<p>Sollte ich ein einziges Projekt der Library haben, wobei ich mit dem <code>__cplusplus</code> -Makro arbeite, und so zwischen 03 und 11er Standard unterscheide (Vorteil: der Benutzer brauch sich nicht zu scheren, ob sein Compiler nach dem 03- oder 11er-Standard kompiliert; Nachteil: Unleserlich), oder sollte ich doch lieber zwei Projekte erstellen, einmal im 03-Standard und einmal im 11er (Vorteil: Leserlich; Nachteil: Der Benutzer muss die richtige Version auswählen)?</p>
<p><code>std::function&lt;&gt;</code> , das ist doch erst seit C++11 dabei, nicht? Wenn ja, dann wäre die beste Lösung wohl eine eigene Klasse dafür zu bauen, right?</p>
<p><code>std::mutex</code> ist erst seit C++11 dabei, aber ich brauch für die 03-Version einen plattformunabhängigen Weg um einige Stellen meiner Library thread-sicher zu machen. Irgendwelche Vorschläge?</p>
<p>Variadic Templates braucht meine Library auch. Was die C++03-Version betrifft: Soll ich da einfach einen Haufen Default-Parameter benutzen? Wenn ja, wie viele?</p>
<p>Vermutlich werden im Laufe der Zeit noch einige Fragen auftauchen. Wenns so weit ist und ich selbst die Lösung dafür nicht finde oder ich mir ganz einfach unsicker bin, werde ich diese hier noch hinzufügen.</p>
<p>Liebe Grüße,<br />
I. AM. CUDDLY.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/317573/c-03-c-11-einige-fragen-beim-schreiben-einer-library</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 14:20:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317573.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Jun 2013 13:40:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 13:40:07 GMT]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich programmiere gerade eine Library, und da sie nun so gut wie fertiggestellt ist und ich sie in zwei Versionen veröffentlichen wollte (einmal 03 Standard; einmal 11er Standard), habe ich noch ein paar Fragen bezüglich den Unterschieden zwischen C++03 und C++11. Eines muss jedoch berücksichtigt werden: Auch wenn man einige meiner Probleme mit anderen diversen Libraries (z.B. boost) lösen könnte, verzichte ich darauf, weil ich ganz einfach nicht will, dass meine Library von anderen Libraries abhängig ist. Schließlich bekommt das schlussendlich der Anwender der Library zu spüren, wenn er die benötigten Libraries noch nicht auf seinem PC installiert hat. Ich leg mal los:</p>
<p>Sollte ich ein einziges Projekt der Library haben, wobei ich mit dem <code>__cplusplus</code> -Makro arbeite, und so zwischen 03 und 11er Standard unterscheide (Vorteil: der Benutzer brauch sich nicht zu scheren, ob sein Compiler nach dem 03- oder 11er-Standard kompiliert; Nachteil: Unleserlich), oder sollte ich doch lieber zwei Projekte erstellen, einmal im 03-Standard und einmal im 11er (Vorteil: Leserlich; Nachteil: Der Benutzer muss die richtige Version auswählen)?</p>
<p><code>std::function&lt;&gt;</code> , das ist doch erst seit C++11 dabei, nicht? Wenn ja, dann wäre die beste Lösung wohl eine eigene Klasse dafür zu bauen, right?</p>
<p><code>std::mutex</code> ist erst seit C++11 dabei, aber ich brauch für die 03-Version einen plattformunabhängigen Weg um einige Stellen meiner Library thread-sicher zu machen. Irgendwelche Vorschläge?</p>
<p>Variadic Templates braucht meine Library auch. Was die C++03-Version betrifft: Soll ich da einfach einen Haufen Default-Parameter benutzen? Wenn ja, wie viele?</p>
<p>Vermutlich werden im Laufe der Zeit noch einige Fragen auftauchen. Wenns so weit ist und ich selbst die Lösung dafür nicht finde oder ich mir ganz einfach unsicker bin, werde ich diese hier noch hinzufügen.</p>
<p>Liebe Grüße,<br />
I. AM. CUDDLY.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330789</guid><dc:creator><![CDATA[ichBinKnuddelig]]></dc:creator><pubDate>Thu, 13 Jun 2013 13:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 13:53:35 GMT]]></title><description><![CDATA[<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p><code>std::mutex</code> ist erst seit C++11 dabei, aber ich brauch für die 03-Version einen plattformunabhängigen Weg um einige Stellen meiner Library thread-sicher zu machen. Irgendwelche Vorschläge?</p>
</blockquote>
<p>Das wird nur mit einer Library oder ähnlichem einigermaßen platformunabhängig funktionieren. Man könnte auch POSIX Threads nehmen. Aber dann nimmt man besser gleich Boost, für die 03er Version, da dies dann zumindest sehr ähnlich wie die C++11 Lösung ist.</p>
<p>Oder wäre OpenMP eine Lösung? Ist von Ansatz allerdings sehr verschieden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330791</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Thu, 13 Jun 2013 13:53:35 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 14:02:07 GMT]]></title><description><![CDATA[<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Hallo Community,<br />
Sollte ich ein einziges Projekt der Library haben, wobei ich mit dem <code>__cplusplus</code> -Makro arbeite, und so zwischen 03 und 11er Standard unterscheide (Vorteil: der Benutzer brauch sich nicht zu scheren, ob sein Compiler nach dem 03- oder 11er-Standard kompiliert; Nachteil: Unleserlich), oder sollte ich doch lieber zwei Projekte erstellen, einmal im 03-Standard und einmal im 11er (Vorteil: Leserlich; Nachteil: Der Benutzer muss die richtige Version auswählen)?</p>
</blockquote>
<p>Ich würde versuchen, die Unterschiede so weit wie möglich wegzuabstrahieren und die unterschiedlichen Implementierungen in Module auszulagern, die du dann einfach je nach System austauschen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330793</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Thu, 13 Jun 2013 14:02:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 14:42:22 GMT]]></title><description><![CDATA[<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>oder sollte ich doch lieber zwei Projekte erstellen, einmal im 03-Standard und einmal im 11er (Vorteil: Leserlich; Nachteil: Der Benutzer muss die richtige Version auswählen)?</p>
</blockquote>
<p>Wesentlich wichtigerer Nachteil: Du musst ständig beide Versionen synchron halten. Auch wenn sich nur kleine Dinge unterscheiden, bist du ständig am Code kopieren, musst Bugfixes zwei Mal anwenden, etc. Die Duplikation ist unnötig aufwändig und fehleranfällig.</p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Eines muss jedoch berücksichtigt werden: Auch wenn man einige meiner Probleme mit anderen diversen Libraries (z.B. boost) lösen könnte, verzichte ich darauf, weil ich ganz einfach nicht will, dass meine Library von anderen Libraries abhängig ist.</p>
</blockquote>
<p>Ohne Bibliotheken und mit C++98 musst du auch bereit sein, auf Features (wie Multithreading) zu verzichten.</p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Variadic Templates braucht meine Library auch. Was die C++03-Version betrifft: Soll ich da einfach einen Haufen Default-Parameter benutzen? Wenn ja, wie viele?</p>
</blockquote>
<p>Nein, du benutzt einfach keine Variadic Templates und suchst dir andere Lösungen. Hat schliesslich jahrzehntelang auch funktioniert. Natürlich kannst du dir Workarounds schreiben, aber wenn du dich schon bei bedingter Kompilierung um die Übersichtlichkeit des Codes sorgst, solltest du die Emulation von Variadic Templates schnell wieder vergessen <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>Wenn man bereit ist, syntaktische Kompromisse einzugehen, kann man auch mit C++98 nahezu das Gleiche erreichen (mittels Operatoren).</p>
<p>Was für eine Zielgruppe hast du denn, dass du C++98 unbedingt unterstützen willst? Mit Boost wäre es ja noch erträglich, da du sehr viele Bibliotheks- und teilweise sogar Sprachmittel trotzdem zur Verfügung hast, aber komplett ohne Bibliotheken bist du eben recht stark eingeschränkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330805</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 13 Jun 2013 14:42:22 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 14:42:56 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>Ich würde versuchen, die Unterschiede so weit wie möglich wegzuabstrahieren und die unterschiedlichen Implementierungen in Module auszulagern, die du dann einfach je nach System austauschen kannst.</p>
</blockquote>
<p>Falscher Ansatz.<br />
Das führt dazu, dass sich Leute eigene String-Klassen und sonstige Container (vorzugsweise verlinkte Listen) schreiben.</p>
<p>Besser ist ein Header &lt;compat/thread&gt;, der aus einem include &lt;boost/thread.hpp&gt; mit using boost::thread; besteht und analog für C++11.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330806</guid><dc:creator><![CDATA[binn di]]></dc:creator><pubDate>Thu, 13 Jun 2013 14:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 14:50:10 GMT]]></title><description><![CDATA[<p>Das Problem ist auch, dass C++11 das Schreiben von Interfaces verändert.</p>
<p>Move-Semantik ist so ein Beispiel. In gewissen Fällen kannst du sie lediglich als optionale Optimierung anbieten, aber bei nichtkopierbaren Klassen verändert sich dadurch die Semantik des Codes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330807</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 13 Jun 2013 14:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 14:53:43 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Das Problem ist auch, dass C++11 das Schreiben von Interfaces verändert.</p>
<p>Move-Semantik ist so ein Beispiel. In gewissen Fällen kannst du sie lediglich als optionale Optimierung anbieten, aber bei nichtkopierbaren Klassen verändert sich dadurch die Semantik des Codes.</p>
</blockquote>
<p>Da macht mans einfach wie die Standardlibrary:<br />
Man hat eine C++03-Bibliothek als Basis.</p>
<p>Falls C++11 definiert ist (wird glaub irgendwo in __cplusplus verschlüsselt) dann gibts ein paar Zusatz-Features. Das ist bedingte Kompilierung, aber nur in eine Richtung.</p>
<p>Das mit Threads ist bei genauerer Überlegung etwas anders. Vielleicht will ein Librarybenutzer C++11 mit boost::thread verwenden. Wäre es eine Option, eine Thread-Policy zu verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330808</guid><dc:creator><![CDATA[binn di]]></dc:creator><pubDate>Thu, 13 Jun 2013 14:53:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 15:05:14 GMT]]></title><description><![CDATA[<p>Vergiss C++03 einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330811</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 13 Jun 2013 15:05:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 15:27:54 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Vergiss C++03 einfach.</p>
</blockquote>
<p>YMMD <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>
<blockquote>
<p>Variadic Templates braucht meine Library auch. Was die C++03-Version betrifft: Soll ich da einfach einen Haufen Default-Parameter benutzen? Wenn ja, wie viele?</p>
</blockquote>
<p>Was brauchst du denn genau an variadic templates? Bestimmt nichts was wirklich nur variadic templates können. Erklär mal anhand eines Beispiels.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330820</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 13 Jun 2013 15:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 15:35:17 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Was brauchst du denn genau an variadic templates? Bestimmt nichts was wirklich nur variadic templates können. Erklär mal anhand eines Beispiels.</p>
</blockquote>
<p>Größtenteils für das Event-System.<br />
Beispiel:</p>
<pre><code class="language-cpp">template&lt;typename Type, typename = typename std::enable_if&lt;std::is_function&lt;Type&gt;::value&gt;::type&gt;
	class Event{
...

		template&lt;typename... Arguments, typename ResultType = result_type, typename = typename std::enable_if&lt;std::is_same&lt;void, ResultType&gt;::value == true&gt;::type&gt;
		result_type process(Arguments&amp;&amp;... arguments) const{

			for(const auto&amp; function : functions_vector_)
				function(std::forward&lt;Arguments&gt;(arguments)...);
		}

		template&lt;typename... Arguments, typename ResultType = result_type, typename = typename std::enable_if&lt;std::is_same&lt;void, ResultType&gt;::value == false&gt;::type&gt;
		std::vector&lt;result_type&gt; process(Arguments&amp;&amp;... arguments) const{
			std::vector&lt;result_type&gt; results;

			for(const auto&amp; function : functions_vector_)
				results.push_back(function(std::forward&lt;Arguments&gt;(arguments)...));

			return results;
		}

...

	};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2330822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330822</guid><dc:creator><![CDATA[ichBinKnuddelig]]></dc:creator><pubDate>Thu, 13 Jun 2013 15:35:17 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 15:41:39 GMT]]></title><description><![CDATA[<p>Also Funktions-Argumente forwarden.<br />
Naja. Gabs schon in Loki (Alexandrescu - Modern C++ Design), halt für Funktionen mit bis zu AFAIK 15 Parametern. Und ohne perfect forwarding natürlich, aber das gibt es in C++03 eben sowieso nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330823</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 13 Jun 2013 15:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 15:44:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void invoke(std::function&lt;void(int)&gt; const&amp; f) { f(4); }

...
// Bitte nicht auf is_function&lt;Type&gt;::value testen, ich will das auch mit std::funciton verwenden können!!!111
template&lt;typename Type&gt;
class Event{
      template &lt;typename Invoker&gt;
      result_type process(Invoker i) { foreach (f : funcs) i(f); }
}
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28547">@Sone</a>: Seit wann ist Loki ein Massstab?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330824</guid><dc:creator><![CDATA[workaround]]></dc:creator><pubDate>Thu, 13 Jun 2013 15:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 16:00:42 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Vergiss C++03 einfach.</p>
</blockquote>
<p>Thats a good point.</p>
<p>Ich weiß ja nichtmal ob überhaupt jemand irgendwann mal meine Library benutzen möchte. Ich belasse es dann vorerst mal bei C++11 und wenn dann irgendwann mal Bedarf auf C++03 entsteht, kann ich den Kram ja umschreiben.</p>
<p>Haltet ihr das für eine gute Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330827</guid><dc:creator><![CDATA[ichBinKnuddelig]]></dc:creator><pubDate>Thu, 13 Jun 2013 16:00:42 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 16:22:25 GMT]]></title><description><![CDATA[<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Haltet ihr das für eine gute Idee?</p>
</blockquote>
<p>Ja. Wir haben 2013, so langsam sind C++11-Compiler auch auf trägeren Systemen angekommen<sup>*</sup>. Die verbliebenen Systeme sind die, die niemals upgraden werden und noch immer mit VS6, GCC3 oder gar mit einer DOS-Version von Turbo-C++ (von anno 1985) arbeiten, weil irgendein Entscheider gegen einen Wechsel ist (oder es ihm einfach egal ist). Die unterstützen dann in der Regel nicht einmal C++98 richtig. Wenn du (mit C++11) maximal portabel bleiben möchtest, dann lass erst einmal Features aus, die nicht in allen großen Compilern (Microsoft, GCC, Clang, eventuell noch Intel und IBM) imlementiert sind.<br />
<a href="http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport" rel="nofollow">http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport</a></p>
<p><sup>*</sup>: Man denke daran, dass C++11 wesentlich älter ist als 2011 und viele Features davon schon lange vorher verbreitet waren. Bloß eben noch nicht offiziell.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330835</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Jun 2013 16:22:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 16:23:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a><br />
Wir haben ne riesen Code-Base die wir erst vor ein paar Jahren mühsam auf VS 2005 upgegraded haben.<br />
Ein Upgrade auf VS 2012 ist im nächsten Jahr unwahrscheinlich.<br />
Trotzdem würde ich nicht sagen dass unser Code &quot;niemals upgegraded&quot; wird.</p>
<p>Auf C++ 03 Systeme Rücksicht nehmen finde ich also nicht ganz verkehrt.</p>
<p>Wobei ich es auch niemandem übel nehme wenn er seine Open-Source (oder auch Closed-Source) C++ Library so programmiert dass z.B. VS 2012 vorausgesetzt wird. Muss jeder für sich entscheiden.<br />
Ich würde aber eben jmd. der gerne Rücksicht nehmen will nicht sagen &quot;vergiss C++ 03&quot;, weil das danach klingt als ob es keinen mehr interessieren würde. Was definitiv nicht so ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330837</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 13 Jun 2013 16:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 16:26:58 GMT]]></title><description><![CDATA[<p>Aber prinzipiell hättet ihr einen C++11-Compiler auf dem System (oder könntet einen holen), der hinreichend kompatibel ist, um am Ende alles zusammen zu linken.</p>
<p>Das Interface der Bibliothek darf man natürlich gerne kompatibel zu C++03 halten, aber bei den Interna würde ich keine Rücksicht mehr nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330840</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Jun 2013 16:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 16:36:51 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Aber prinzipiell hättet ihr einen C++11-Compiler auf dem System (oder könntet einen holen), der hinreichend kompatibel ist, um am Ende alles zusammen zu linken.</p>
</blockquote>
<p>Ja.<br />
Nur was nutzt uns das? Man kann nicht einfach VS 2005 und VS 2012 Code zusammenknoten, wenn das Interface C++ ist.<br />
Mit nem C-DLL Interface geht es natürlich, aber es geht hier ja um C++ Libs.</p>
<blockquote>
<p>Das Interface der Bibliothek darf man natürlich gerne kompatibel zu C++03 halten, aber bei den Interna würde ich keine Rücksicht mehr nehmen.</p>
</blockquote>
<p>Siehe oben, ich wüsste nicht was uns das bringen sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330846</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 13 Jun 2013 16:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 21:10:30 GMT]]></title><description><![CDATA[<p>[quote=&quot;SeppJ&quot;]</p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Die verbliebenen Systeme sind die, die niemals upgraden werden und noch immer mit VS6, GCC3 oder gar mit einer DOS-Version von Turbo-C++ (von anno 1985) arbeiten, weil irgendein Entscheider gegen einen Wechsel ist (oder es ihm einfach egal ist). Die unterstützen dann in der Regel nicht einmal C++98 richtig.</p>
</blockquote>
<p>Ganz so schwarzweiß ist das nicht. Bei uns ist z.B. mit GCC 3.7 erst mal Ende der Fahnenstange, weil die neueren eine älter ABI für ARM nicht mehr unterstützen, die wir benötigen. Damit werden wir manches von C++11 nie nutzen können. Auch gestaltet sich die Anbindung der Standardbibliothek sehr schwierig und kommt erst langsam Schritt für schritt. &quot;Thread&quot; wird es wohl spät bis nie geben, da das mit unserem Jobmanagement konzeptionell nicht zusammenpasst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330924</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Thu, 13 Jun 2013 21:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Thu, 13 Jun 2013 22:53:17 GMT]]></title><description><![CDATA[<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p><code>std::function&lt;&gt;</code> , das ist doch erst seit C++11 dabei, nicht? Wenn ja, dann wäre die beste Lösung wohl eine eigene Klasse dafür zu bauen, right?</p>
</blockquote>
<p><code>boost::function</code></p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p><code>std::mutex</code> ist erst seit C++11 dabei, aber ich brauch für die 03-Version einen plattformunabhängigen Weg um einige Stellen meiner Library thread-sicher zu machen. Irgendwelche Vorschläge?</p>
</blockquote>
<p><code>boost::mutex</code></p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Variadic Templates braucht meine Library auch. Was die C++03-Version betrifft: Soll ich da einfach einen Haufen Default-Parameter benutzen? Wenn ja, wie viele?</p>
</blockquote>
<p>Boost.Preprocessor oder Boost.MPL</p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>Größtenteils für das Event-System.<br />
Beispiel:</p>
<pre><code class="language-cpp">template&lt;typename Type, typename = typename std::enable_if&lt;std::is_function&lt;Type&gt;::value&gt;::type&gt;
	class Event{
[...]
	};
</code></pre>
</blockquote>
<p>Sieht so ähnlich aus wie Boost.Signals2.</p>
<p>Boost hat auch Mittel, um Unterschiede zwischen Implementationen auszugleichen. Da gibt es zum Beispiel <code>BOOST_CONSTEXPR</code> , einen Ersatz für <code>&lt;cstdint&gt;</code> , Emulation von RValue-Referenzen, Container wie <code>vector</code> und so weiter.</p>
<p>Warum nicht einfach Boost nehmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330941</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Thu, 13 Jun 2013 22:53:17 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 00:29:57 GMT]]></title><description><![CDATA[<p>TyRoXx: Danke für die Vorschläge, aber</p>
<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>[...] Auch wenn man einige meiner Probleme mit anderen diversen Libraries (z.B. boost) lösen könnte, verzichte ich darauf, weil ich ganz einfach nicht will, dass meine Library von anderen Libraries abhängig ist.[...]</p>
</blockquote>
<p><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>
<p>Ich werd erstmal kucken wie sich die Library, die sich an den 11er Standard lehnt in der Öffentlichkeit schlägt, wenn dann wie bereits erwähnt wirklich noch Bedarf an C++03 auftritt geh ich nochmal auf den Thread ein.</p>
<p>Bis dahin nochmals Danke an alle!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330948</guid><dc:creator><![CDATA[ichBinKnuddelig]]></dc:creator><pubDate>Fri, 14 Jun 2013 00:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 07:14:30 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Nur was nutzt uns das? Man kann nicht einfach VS 2005 und VS 2012 Code zusammenknoten, wenn das Interface C++ ist.</p>
</blockquote>
<p>Kann man nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Dann ziehe ich meine Bemerkung zurück. Da ich VS in der Praxis nicht kenne, war ich davon ausgegangen, dass sich das vernünftig verhält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330981</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 14 Jun 2013 07:14:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 08:48:41 GMT]]></title><description><![CDATA[<p>ichBinKnuddelig schrieb:</p>
<blockquote>
<p>TyRoXx: Danke für die Vorschläge, aber [...]</p>
</blockquote>
<p>Wie gesagt, man kann halt nicht alles haben. Boost ist genau für solche Zwecke ideal, ausserdem ist es wohl die meistgenutzte C++-Bibliothekssammlung.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Kann man nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Sind bei g++ die Binaries verschiedener Major-Releases kompatibel zueinander?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331006</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 14 Jun 2013 08:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 08:56:42 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Kann man nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Sind bei g++ die Binaries verschiedener Major-Releases kompatibel zueinander?</p>
</blockquote>
<p>Nicht nur die Major-Releases vom g++ (welche ungefähr 10 mal weniger sind als MSVC-Major-Releases).<br />
Auch sind clang, gcc und andere Compiler (vermutlich auch Intel, IBM) zueinander binärkompatibel. Der gemeinsame Nenner ist die Itanium ABI.</p>
<p>Probleme können Linkabhängigkeiten mit der glibc o.Ä. machen, aber die sind (bis auf seltene Kleinigkeiten) rückwärtskompatibel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331010</guid><dc:creator><![CDATA[gehwegplusplus]]></dc:creator><pubDate>Fri, 14 Jun 2013 08:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 10:05:25 GMT]]></title><description><![CDATA[<p>Das Problem bei __cplusplus ist doch dass das erst auf zb. C++11 gesetzt wird, wenn der Standard voll umgesetzt wird - meines Wissens nach gab es aber noch nie einen Compiler der einen Standard zu 100% umgesetzt hat, Blüten wie export etc sei dank.</p>
<p>Lieber mit __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ und __GXX_EXPERIMENTAL_CXX0X__ arbeiten wenn der GCC das Ziel ist, bei Visual Studio wohl _MSC_VER</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331028</guid><dc:creator><![CDATA[Ethon_]]></dc:creator><pubDate>Fri, 14 Jun 2013 10:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 12:07:09 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a><br />
Das Problem ist die Standard-Library.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331075</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 14 Jun 2013 12:07:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++03 &#x2F; C++11: Einige Fragen beim Schreiben einer Library on Fri, 14 Jun 2013 12:37:30 GMT]]></title><description><![CDATA[<p>Ethon_ schrieb:</p>
<blockquote>
<p>...meines Wissens nach gab es aber noch nie einen Compiler der einen Standard zu 100% umgesetzt hat, Blüten wie export etc sei dank.</p>
</blockquote>
<p>Comeau C++ konnte soviel ich weiß als einziger das von dir angesprochene export, und galt wenn ich mich richtig erinnere tatsächlich als komplett Standardkompatibel (Ich aber kein echter Compiler, sondern eher ein Meta-Compiler der aus C++ C macht, und dies an einen anderen Compiler weitergibt).</p>
<p>[Anderseits scheint Comeau inzwischen tot zu sein, Updates kommen jedenfalls seit langen keine mehr]</p>
<p>Ethon_ schrieb:</p>
<blockquote>
<p>Das Problem bei __cplusplus ist doch dass das erst auf zb. C++11 gesetzt wird, wenn der Standard voll umgesetzt wird...</p>
</blockquote>
<p>Man sollte zumindest darauf achten, welche Features von den Zielcompilern schon (richtig) unterstützt werden. Leider arbeiten wir z.B. noch mit dem C++ Builder (Und dank einer Problematik konnten wir noch nicht vom 2007ener wechseln, aber auch die neueren sollen wohl noch nicht wirklich gut den C++ Standard unterstützen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2331097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2331097</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 14 Jun 2013 12:37:30 GMT</pubDate></item></channel></rss>