<?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[#include &amp;lt;tr1&#x2F;memory&amp;gt;]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich portiere gerade ein Projekt von Linux auf Windows. Während GCC in der<br />
aktuellen Version sowohl #include &lt;tr1/memory&gt; als auch #include &lt;memory&gt;<br />
unterstützt, geht bei VS2010 nur #include &lt;memory&gt;. Nun muß mein Projekt<br />
aber auch noch VS2008 unterstützen. VS2008 kann ich hier mangels Setup nicht<br />
testen, aber ich nehme an, daß es dort #include &lt;tr1/memory&gt; heißt, ist das<br />
richtig? Falls nötig, mit welchen #ifdef's läßt sich zwischen 2008 und 2010<br />
unterscheiden?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/298715/include-lt-tr1-memory-gt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 18:47:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298715.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jan 2012 11:37:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 11:37:53 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich portiere gerade ein Projekt von Linux auf Windows. Während GCC in der<br />
aktuellen Version sowohl #include &lt;tr1/memory&gt; als auch #include &lt;memory&gt;<br />
unterstützt, geht bei VS2010 nur #include &lt;memory&gt;. Nun muß mein Projekt<br />
aber auch noch VS2008 unterstützen. VS2008 kann ich hier mangels Setup nicht<br />
testen, aber ich nehme an, daß es dort #include &lt;tr1/memory&gt; heißt, ist das<br />
richtig? Falls nötig, mit welchen #ifdef's läßt sich zwischen 2008 und 2010<br />
unterscheiden?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172779</guid><dc:creator><![CDATA[geom]]></dc:creator><pubDate>Thu, 26 Jan 2012 11:37:53 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 11:45:01 GMT]]></title><description><![CDATA[<p>geom schrieb:</p>
<blockquote>
<p>mit welchen #ifdef's läßt sich zwischen 2008 und 2010<br />
unterscheiden?</p>
</blockquote>
<p><a href="http://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers#Microsoft_Visual_C.2B.2B" rel="nofollow">http://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers#Microsoft_Visual_C.2B.2B</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172784</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 26 Jan 2012 11:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 11:59:07 GMT]]></title><description><![CDATA[<p>Ob das die aktuellste Info ist:<br />
<a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=6922" rel="nofollow">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=6922</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172788</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 26 Jan 2012 11:59:07 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 12:31:02 GMT]]></title><description><![CDATA[<p>Die TR1-Erweiterungen sind bei Microsoft relativ spät dazugekommen, so um 2010 rum, glaub'ich. Und die haben sie in den &quot;normalen&quot; Header, also beispielsweise &lt;memory&gt; eingebaut. Das heißt, dass Du es sowieso nicht unter dem VS 2008 zum laufen bekommen wirst (denke ich mal). Du kannst es Dir natürlich einfach machen, in dem Du Dich nicht auf Herstellerspezifische TR1-Erweiterungen verlässt, sondern boost::tr1 als Bindeglied verwendest, #include &lt;boost/tr1/memory.hpp&gt;. Dieses #ifdef Zeugs haben sie Dir da nämlich schon abgenommen und wenn Dein Compiler/StdLib kein TR1 bietet, fällst Du damit auf die Boost-Implementierung zurück.</p>
<p><a href="http://www.boost.org/doc/libs/1_48_0/doc/html/boost_tr1.html" rel="nofollow">http://www.boost.org/doc/libs/1_48_0/doc/html/boost_tr1.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172799</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 26 Jan 2012 12:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 12:42:03 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Die TR1-Erweiterungen sind bei Microsoft relativ spät dazugekommen, so um 2010 rum, glaub'ich. Und die haben sie in den &quot;normalen&quot; Header, also beispielsweise &lt;memory&gt; eingebaut. Das heißt, dass Du es sowieso nicht unter dem VS 2008 zum laufen bekommen wirst (denke ich mal). Du kannst es Dir natürlich einfach machen, in dem Du Dich nicht auf Herstellerspezifische TR1-Erweiterungen verlässt, sondern boost::tr1 als Bindeglied verwendest, #include &lt;boost/tr1/memory.hpp&gt;. Dieses #ifdef Zeugs haben sie Dir da nämlich schon abgenommen und wenn Dein Compiler/StdLib kein TR1 bietet, fällst Du damit auf die Boost-Implementierung zurück.</p>
<p><a href="http://www.boost.org/doc/libs/1_48_0/doc/html/boost_tr1.html" rel="nofollow">http://www.boost.org/doc/libs/1_48_0/doc/html/boost_tr1.html</a></p>
</blockquote>
<p>Doch, die gehen mit einem Erweiterungs-Package auch unter VS2008. Allerdings<br />
weiß ich eben nicht, ob sie dort &lt;tr1/memory&gt; heißen oder nur &lt;memory&gt;, weil<br />
ich kein VS2008 installiert habe. Boost wäre am einfachsten, das ist richtig.<br />
Bloß will der Kunde im Build-System Boost vermeiden, um nicht noch eine<br />
Bibliothek warten zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172803</guid><dc:creator><![CDATA[geom]]></dc:creator><pubDate>Thu, 26 Jan 2012 12:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 12:55:49 GMT]]></title><description><![CDATA[<p>Umgekehrt: du bist da über eine gcc-Besonderheit gestolpert. Der TR1-Spezifikation nach gehört der gesamte TR1-Kram in die normalen Standardheader.</p>
<p>Ich helfe mir mit folgender Konstruktion:</p>
<pre><code class="language-cpp">#ifdef __GNUC__
#  define TR1_HEADER(header) &lt;tr1/header&gt;
#else
#  define TR1_HEADER(header) &lt;header&gt;
#endif

#include TR1_HEADER(memory)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2172807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172807</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Thu, 26 Jan 2012 12:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 13:07:04 GMT]]></title><description><![CDATA[<p>geom schrieb:</p>
<blockquote>
<p>Doch, die gehen mit einem Erweiterungs-Package auch unter VS2008. Allerdings weiß ich eben nicht, ob sie dort &lt;tr1/memory&gt; heißen oder nur &lt;memory&gt;, weil ich kein VS2008 installiert habe. [...]<br />
Bloß will der Kunde im Build-System Boost vermeiden, um nicht noch eine<br />
Bibliothek warten zu müssen.</p>
</blockquote>
<p>Also ich fasse das mal so zusammen: Du schreibst Software, die der Kunde bauen soll. Unter VS2008. Und hast selbst keinen VS2008 installiert. Wenn der 2008er was von deinem Code nicht frisst, weißt du das also erst, wenn du den Kunden an der Strippe hast? Mutig <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/2172815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172815</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 26 Jan 2012 13:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 13:39:01 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Also ich fasse das mal so zusammen: Du schreibst Software, die der Kunde bauen soll. Unter VS2008. Und hast selbst keinen VS2008 installiert. Wenn der 2008er was von deinem Code nicht frisst, weißt du das also erst, wenn du den Kunden an der Strippe hast? Mutig <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>Das Setup benötigt Boost, CGAL, GMP, ZLib, compiliert jeweils als Debug- und<br />
Releaseversion. Die Sachen korrekt zu konfigurieren und CMake entsprechend<br />
einzurichten, ist sehr aufwändig. Und nun das ganze für VS2008 wiederholen,<br />
noch dazu mit dem Risiko, daß sich die Setups in die Quere kommen? Besser<br />
nicht.</p>
<p>Wenn VS2008 tatsächlich etwas vom Code nicht nimmt, der unter Linux und<br />
VS2010 compiliert, gibts Telefon. Ist glaub ich auch eine Frage der Effizienz,<br />
daß man einem Kunden sagt &quot;Meine Herren, Euer Compiler ist vier Jahre alt,<br />
schauen wir mal, ob es dort geht, sonst reden wir nochmal.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172838</guid><dc:creator><![CDATA[geom]]></dc:creator><pubDate>Thu, 26 Jan 2012 13:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 14:18:34 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Umgekehrt: du bist da über eine gcc-Besonderheit gestolpert. Der TR1-Spezifikation nach gehört der gesamte TR1-Kram in die normalen Standardheader.</p>
</blockquote>
<p>Gehört das so? Ich hatte da nämlich mal vor einer Weile nachgeguckt und diese Information nicht gefunden. Habe ich sie übersehen oder bildest du dir das ein? Eine genaue Quellenangabe wär toll. Ich danke im voraus.</p>
<p>Edit: Ich zitiere 1.3/4 des TR1 Entwurfs</p>
<blockquote>
<p>It is <strong>recommended</strong> <strong>either</strong> that additional declarations in standard headers be protected with a macro that is not defined by default, <strong>or else</strong> that all extended headers, including both new headers and parallel versions of standard headers with nonstandard declarations, be placed in a separate directory that is not part of the default search path.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2172874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172874</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:18:34 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 14:47:44 GMT]]></title><description><![CDATA[<p>Im Header tr1/memory des gcc 4.6.1 steht drin, das man den Header nicht mehr unter c0x verwenden soll.</p>
<p>Hab jetzt nicht gesucht. Aber da sollte es eine Lösung geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172896</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:47:44 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 14:48:41 GMT]]></title><description><![CDATA[<p>Das zieht sich durch ISO/IEC DTR 19768 von vorne bis hinten durch. Die Tabellen, die beschreiben, wo was gefunden wird, nennen alle &lt;memory&gt;, &lt;functional&gt;, &lt;cmath&gt; etc., nicht etwa &lt;tr1/memory&gt;, &lt;tr1/functional&gt; und &lt;tr1/cmath&gt;. In den Überschriften heißt es</p>
<blockquote>
<p>2.1.1 Additions to header &lt;functional&gt; synopsis<br />
2.2.1 Additions to header &lt;memory&gt; synopsis</p>
</blockquote>
<p>etc.</p>
<p>1.2 liest sich wie folgt:</p>
<blockquote>
<p>This technical report describes four general categories of library extensions:</p>
<p>(...)</p>
<p>3. New library components declared as additions to existing standard heders, such as the mathematical special functions <strong>added to</strong> the headers &lt;cmath&gt; and &lt;math.h&gt; in clauses 5.2.1 and 5.2.2</p>
</blockquote>
<p>und die neuen Header sind auch ohne irgendwelche Präfixe genannt.</p>
<p>1.3 (4) empfiehlt, so wie ich das lese, lediglich, dass die Bibliothek die Möglichkeit bieten sollte, reines C++03 ohne TR1 zu benutzen - entweder per Makroschalter, oder indem der Compiler durch Schalter dazu bewegt werden kann, seine Header aus dem einen oder anderen Verzeichnis zu beziehen. Im Fall der Verzeichnisvariante müssten die TR1-fähigen Header dann auch das bereitstellen, was in ihrem C++03-Pendant steht.</p>
<p>So oder so sollte der Verzeichnisname im benutzenden Code nicht auftauchen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172898</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 14:53:05 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>[...]</p>
</blockquote>
<p>Ich würde die Betonung anders setzen:</p>
<blockquote>
<p>3. New library components declared as <strong>additions to <em>existing</em> standard heders</strong></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2172904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172904</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 15:18:06 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Umgekehrt: du bist da über eine gcc-Besonderheit gestolpert. Der TR1-Spezifikation nach gehört der gesamte TR1-Kram in die normalen Standardheader.</p>
<p>Ich helfe mir mit folgender Konstruktion:</p>
<pre><code class="language-cpp">#ifdef __GNUC__
#  define TR1_HEADER(header) &lt;tr1/header&gt;
#else
#  define TR1_HEADER(header) &lt;header&gt;
#endif

#include TR1_HEADER(memory)
</code></pre>
</blockquote>
<p>Das ist hilfreich, danke! <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/2172928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172928</guid><dc:creator><![CDATA[geom]]></dc:creator><pubDate>Thu, 26 Jan 2012 15:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;tr1&#x2F;memory&amp;gt; on Thu, 26 Jan 2012 16:15:17 GMT]]></title><description><![CDATA[<p>Besser wäre es, beim GNU-C die exakte Version abzufragen, da das unter C++11 auch ohne dies tr technical-report bei den neuen Versionen funktionieren sollte.</p>
<p>Aber man muss es wahrscheinlich im Zweifel testen, ob der Compiler älteren tr1 Quelltext mit den aktuellen Headern ohne Code-Änderung richtig ausführt.</p>
<p>Würde sagen, teste das ohne tr1 unter einem neuen gnu, eventuell mit c++11, bzw. c++0x Schalter.<br />
Wenn der Quelltext doch auf älteren Compilern laufen soll, kannst du ja immer noch die tr1 - Variante einbauen.</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172967</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 26 Jan 2012 16:15:17 GMT</pubDate></item></channel></rss>