<?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[Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen]]></title><description><![CDATA[<p>Vielleicht ist der Begriff doppeldeutig ...</p>
<p>Sowas gibts durchaus für Threads, nennt sich dann zum Beispiel &quot;Thread Local Storage&quot;.</p>
<p>Siehe:<br />
<a href="http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html</a></p>
<p>Jetzt kommt meine Frage:</p>
<p>Wie realisiert man das ohne Threads?</p>
<p>Natürlich ist folgender Trick immer möglich :</p>
<pre><code>Context* static GetMyContext(int secret_code);
</code></pre>
<p>Ich würde gerne diese Magic Number verstecken!<br />
Denn statt des secret_code kann ich mir genauso einen ContextPointer speichern ...<br />
Diesen Wert muss man dann überall &quot;durchschleifen&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>mfg<br />
nurF</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237686/contextspezifische-globale-statische-variablen-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:33:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237686.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 31 Mar 2009 17:12:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Tue, 31 Mar 2009 17:12:54 GMT]]></title><description><![CDATA[<p>Vielleicht ist der Begriff doppeldeutig ...</p>
<p>Sowas gibts durchaus für Threads, nennt sich dann zum Beispiel &quot;Thread Local Storage&quot;.</p>
<p>Siehe:<br />
<a href="http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html</a></p>
<p>Jetzt kommt meine Frage:</p>
<p>Wie realisiert man das ohne Threads?</p>
<p>Natürlich ist folgender Trick immer möglich :</p>
<pre><code>Context* static GetMyContext(int secret_code);
</code></pre>
<p>Ich würde gerne diese Magic Number verstecken!<br />
Denn statt des secret_code kann ich mir genauso einen ContextPointer speichern ...<br />
Diesen Wert muss man dann überall &quot;durchschleifen&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>mfg<br />
nurF</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1688963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1688963</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 31 Mar 2009 17:12:54 GMT</pubDate></item><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Tue, 31 Mar 2009 17:15:34 GMT]]></title><description><![CDATA[<p>Was willst du genau erreichen? Inwiefern haben Threads etwas mit deinem Problem zu tun?</p>
<p>Wenn es dir nur darum geht, die Magic Numbers zu verstecken, benutze am besten ein <code>enum</code> . Dann hast du auch Typsicherheit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1688964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1688964</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 31 Mar 2009 17:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Tue, 31 Mar 2009 17:43:31 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Was willst du genau erreichen? Inwiefern haben Threads etwas mit deinem Problem zu tun?</p>
<p>Wenn es dir nur darum geht, die Magic Numbers zu verstecken, benutze am besten ein <code>enum</code> . Dann hast du auch Typsicherheit.</p>
</blockquote>
<p>Ich hab disjunkte Code-Teile A und B, die in verschiedenen Kontexten laufen können. Kontext könnte auch einfach nur Thread bedeuten.</p>
<p>Will nun A eine Nachricht an B schicken, holt sich A den aktuellen Kontext (Thread)</p>
<p>Zusammengefaßt:</p>
<pre><code>GetMyContext()-&gt;SendMessage(&quot;B&quot;, &quot;Hello World&quot;);
</code></pre>
<p>Ich will unbedingt sowas vermeiden wie :</p>
<pre><code>GetMyContext(this)-&gt;SendMessage(&quot;B&quot;, &quot;Hello World&quot;);
GetMyContext(&amp;A)-&gt;SendMessage(&quot;B&quot;, &quot;Hello World&quot;);
</code></pre>
<p>oder eben wie im Post #1.</p>
<p>Der entsprechende Kontext(Thread) wird erst zur Laufzeit zugewiesen.<br />
Der Kontext in meinem Fall ist ein ganzes EventSystem bzw. eine EventLoop.</p>
<p>Der Enum bringt mich da nicht unbedingt weiter ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1688977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1688977</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 31 Mar 2009 17:43:31 GMT</pubDate></item><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Tue, 31 Mar 2009 17:55:59 GMT]]></title><description><![CDATA[<p>du musst den aktuellen kontext setzen.</p>
<p>zB wenn der event dispatch laeuft, dann pusht du den aktuellen kontext eben auf das entsprechende event und wenn der dispatch zuende ist, dann popst du kontext wieder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1688985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1688985</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 31 Mar 2009 17:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Tue, 31 Mar 2009 18:20:11 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>du musst den aktuellen kontext setzen.</p>
</blockquote>
<p>Ok, habe ich grundsätzlich nichts gegen.</p>
<blockquote>
<p>... dann pusht du den aktuellen kontext eben auf das entsprechende event ...</p>
</blockquote>
<p>Könntest du das genauer erklären. Ich kann mit dieser Beschreibung leider nichts anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1688994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1688994</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 31 Mar 2009 18:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Tue, 31 Mar 2009 21:16:14 GMT]]></title><description><![CDATA[<p>nurf schrieb:</p>
<blockquote>
<p>Vielleicht ist der Begriff doppeldeutig ...</p>
<p>Sowas gibts durchaus für Threads, nennt sich dann zum Beispiel &quot;Thread Local Storage&quot;.</p>
<p>Siehe:<br />
<a href="http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html</a></p>
<p>Jetzt kommt meine Frage:</p>
<p>Wie realisiert man das ohne Threads?</p>
</blockquote>
<p>Ohne Threads nennt sich das &quot;globale Variable&quot; <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1689075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689075</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 31 Mar 2009 21:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to Contextspezifische globale&#x2F;statische Variablen&#x2F;Funktionen on Wed, 01 Apr 2009 08:50:00 GMT]]></title><description><![CDATA[<p>nurf schrieb:</p>
<blockquote>
<p>Könntest du das genauer erklären. Ich kann mit dieser Beschreibung leider nichts anfangen.</p>
</blockquote>
<p>Wenn jetzt einen neuen Kontext betrittst (zB event dispatching) dann pusht du diesen context auf einen stack und getContext() liefert dir das oberste Element aus dem Stack.</p>
<p>Wenn du nun einen nächsten Kontext betrittst, pusht du wieder auf den Stack und hast somit einen neuen Kontext. Wenn du diesen verlässt, popst du das oberste Element und übrig bleibt der zuletzt gesetzte Kontext...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689157</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 01 Apr 2009 08:50:00 GMT</pubDate></item></channel></rss>