<?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[Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren]]></title><description><![CDATA[<p>Hallo liebe Forengemeinde!</p>
<p>Ich habe einen Vorschlag für den nächsten Standard, und auch wenn ich ihn niemals proposen werde, wollte ich trotzdem ein paar Meinungen dazu einholen.</p>
<p>Meine Idee ist, statische Konstruktoren und Destruktoren für Übersetzungseinheiten einzuführen. Die Syntax wäre dabei wie folgt:</p>
<pre><code class="language-cpp">static : initializer-list // optional
{
    // code
}

~static
{
    // code
}
</code></pre>
<p>Warum will ich ein solches Sprachfeature? Ich habe erst letztens bemerkt, was für ein PITA es ist, globale Variablen von nicht kopierbaren, nicht movebaren Typen zu haben. In meinem Fall habe ich einen std::ostream und es so &quot;gelöst&quot;:</p>
<pre><code class="language-cpp">std::ofstream of(filename);

std::ostream&amp; init_get_stream()
{
	set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
	return of;
}

std::ostream&amp; get_stream()
{
	static std::ostream&amp; os = init_get_stream();
	return os;
}
</code></pre>
<p>Nachteile: Obskur, erfordert zusätzliche Referenz, für jede globale Variable im Worst-Case 2 Funktionen zusätzlich.</p>
<p>Möglichkeit 2: Singleton.<br />
Nachteil: Eine Klasse ist designtechnisch das falsche Werkzeug, ich betrachte das als Hack. Außerdem immer noch umständlich.</p>
<p>Lösung mit statischem Konstruktor:</p>
<pre><code class="language-cpp">std::ofstream of;

std::ostream&amp; get_stream() { return of; }

static : of(filename)
{
	set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
}
</code></pre>
<p>Viel kürzer, übersichtlicher, und drückt meine Intention direkt aus. (Die Initializer-List ist selbstverständlich optional, die Direktinitialisierung wäre weiterhin erlaubt.)</p>
<p>Als weiteres Beispiel könnte man die Windows Socket-API nennen, die bekanntermaßen das Aufrufen der Startup und Cleanup-Funktionen erfordert. Sowas könnte eine dazugelinkte Bibliothek mithilfe dieses Features erledigen.</p>
<p>Was haltet ihr von dieser Idee?</p>
<p>Grüße,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305100/vorschlag-für-den-nächsten-c-standard-statische-konstruktoren-und-destruktoren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 12:36:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305100.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Jun 2012 02:52:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 02:57:33 GMT]]></title><description><![CDATA[<p>Hallo liebe Forengemeinde!</p>
<p>Ich habe einen Vorschlag für den nächsten Standard, und auch wenn ich ihn niemals proposen werde, wollte ich trotzdem ein paar Meinungen dazu einholen.</p>
<p>Meine Idee ist, statische Konstruktoren und Destruktoren für Übersetzungseinheiten einzuführen. Die Syntax wäre dabei wie folgt:</p>
<pre><code class="language-cpp">static : initializer-list // optional
{
    // code
}

~static
{
    // code
}
</code></pre>
<p>Warum will ich ein solches Sprachfeature? Ich habe erst letztens bemerkt, was für ein PITA es ist, globale Variablen von nicht kopierbaren, nicht movebaren Typen zu haben. In meinem Fall habe ich einen std::ostream und es so &quot;gelöst&quot;:</p>
<pre><code class="language-cpp">std::ofstream of(filename);

std::ostream&amp; init_get_stream()
{
	set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
	return of;
}

std::ostream&amp; get_stream()
{
	static std::ostream&amp; os = init_get_stream();
	return os;
}
</code></pre>
<p>Nachteile: Obskur, erfordert zusätzliche Referenz, für jede globale Variable im Worst-Case 2 Funktionen zusätzlich.</p>
<p>Möglichkeit 2: Singleton.<br />
Nachteil: Eine Klasse ist designtechnisch das falsche Werkzeug, ich betrachte das als Hack. Außerdem immer noch umständlich.</p>
<p>Lösung mit statischem Konstruktor:</p>
<pre><code class="language-cpp">std::ofstream of;

std::ostream&amp; get_stream() { return of; }

static : of(filename)
{
	set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
}
</code></pre>
<p>Viel kürzer, übersichtlicher, und drückt meine Intention direkt aus. (Die Initializer-List ist selbstverständlich optional, die Direktinitialisierung wäre weiterhin erlaubt.)</p>
<p>Als weiteres Beispiel könnte man die Windows Socket-API nennen, die bekanntermaßen das Aufrufen der Startup und Cleanup-Funktionen erfordert. Sowas könnte eine dazugelinkte Bibliothek mithilfe dieses Features erledigen.</p>
<p>Was haltet ihr von dieser Idee?</p>
<p>Grüße,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225600</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 02:57:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 03:12:09 GMT]]></title><description><![CDATA[<p>Gute Lösung:</p>
<pre><code class="language-cpp">namespace
{
  ostream&amp; get_stream()
  {
    ...
  }
}

std::ostream&amp; os = get_stream();
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225601</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 21 Jun 2012 03:12:09 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 03:13:35 GMT]]></title><description><![CDATA[<p>Die Funktion get_stream dient dazu, Variablen im Header unsichtbar zu machen (sprich: Kapselung). Du müsstest also noch eine Funktion für deine Referenz schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225602</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 03:13:35 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 03:27:42 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Die Funktion get_stream dient dazu, Variablen im Header unsichtbar zu machen (sprich: Kapselung). Du müsstest also noch eine Funktion für deine Referenz schreiben.</p>
</blockquote>
<p>Wozu dann die globale Variable?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225603</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 21 Jun 2012 03:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 04:54:12 GMT]]></title><description><![CDATA[<p>Ob global, oder funktions-statisch, ist ja nun wirklich egal. In beiden Fällen brauche ich 2 Funktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225608</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 04:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 06:59:11 GMT]]></title><description><![CDATA[<p>die zwei Funktionen tun ja nun wirklich nicht weh. Dein statischer Konstruktor ist ja auch nichts anderes als eine Funktion.</p>
<pre><code class="language-cpp">ostream&amp; get_stream()
{
  static ofstream of(filename);
  static auto _=[&amp;of]{return set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;),0;}();
  return of;
}
</code></pre>
<p><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>
<pre><code class="language-cpp">ostream&amp; get_stream()
{
  static struct _ {
    ofstream of;
    _() : of(&quot;filename.txt&quot;) {set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);}
    ~_() { of &lt;&lt; &quot;Schluss\n&quot;; }
  } _;
  return _.of;
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">ostream&amp; get_stream()
{
  static ofstream of(&quot;filename.txt&quot;);
  static std::once_flag _;
  std::call_once(_, set_time_formatting, std::ref(of), &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
  return of;
}
</code></pre>
<p>Alles zwei &quot;Funktionen&quot;, genau wie dein &quot;static Ctor&quot;:</p>
<ol>
<li>Lambda</li>
<li>Ctor des lokalen Objekts</li>
<li>implizit durch call_once</li>
</ol>
<p>den static Dtor kriegst du mit der zweiten Variante auch problemlos hin - du kommst sogar um das static initialization fiasko herum, das mit den static ctro/dtors nicht gelöst wird, weil die soweit ich das sehe offenbar nur auf tatsächlich globalen Variablen arbeiten sollen - global oder funktionsstatisch ist nämlich alles andere als egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225628</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 21 Jun 2012 06:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:19:09 GMT]]></title><description><![CDATA[<p>Das sind doch alles nur hässliche Workarounds...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225630</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:19:09 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:27:03 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Das sind doch alles nur hässliche Workarounds...</p>
</blockquote>
<p>Der statische Konstruktor wäre auch kein Kind von Schönheit. Erst recht nicht, wenn man das static initilization fiasko im Hinterkopf behält.</p>
<p>Seien wir mal ehrlich: non-movable, non-copyable Objekte sind schwiergig. Gloabel Variablen sind grundsätzlich unschön. Beides zusammen wird dann allmählich eklig, ist aber gottseidank selten. Das machen Workarounds in der Sprache auch nicht schöner.</p>
<p>Davon abgesehen wage ich zu behaupten, dass die call_once Funktionalität genau für solche Zwecke geschaffen wurde - und Dinge wie Threadsicherheit gleich mit verarztet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225633</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:27:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:30:02 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Der statische Konstruktor wäre auch kein Kind von Schönheit. Erst recht nicht, wenn man das static initilization fiasko im Hinterkopf behält.</p>
</blockquote>
<p>Ich habe nicht so Recht verstanden, was du meinst, aber es lässt sich bestimmt zufriedenstellend lösen.</p>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Gloabel Variablen sind grundsätzlich unschön.</p>
</blockquote>
<p>Das mag schon sein, aber wenn ich sie brauche, dann ist das nunmal so. Ich sehe auch nicht, warum einem die Sprache in diesem Fall nicht helfen sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225635</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:30:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:39:08 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Gloabel Variablen sind grundsätzlich unschön.</p>
</blockquote>
<p>Das mag schon sein, aber wenn ich sie brauche, dann ist das nunmal so.</p>
</blockquote>
<p>Aber das Design lässt sich immer so umsetzen, dass man sie nicht braucht. Es gibt wirklich nur sehr wenige Fälle ( <code>std::cin, std::cout, std::cerr</code> , Qts <code>qApp</code> , usw.) wo es wirklich Sinn macht, eine Variable global zu deklarieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225639</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:40:25 GMT]]></title><description><![CDATA[<p>Komm du mir ja nicht mit Design - du hast keine Ahnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225640</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:40:25 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:40:53 GMT]]></title><description><![CDATA[<p>Aber das ganze gibt es doch schon, es nennt sich globale Variable:</p>
<pre><code class="language-cpp">namespace {
   struct staticCtor {
      staticCtor() {
         WSAStartup();
      }
      ~staticCtor() {
         WSACleanup();
      }
   } o;
}
</code></pre>
<p>Das ganze scheitert einfach nur daran, dass es keine definierte Initialisierungsreihenfolge. Das Problem löst sich mit einem static Ctor auch nicht. Aber die funktionalität ist da.</p>
<p>Wenn es ein Modulkonzept gibt, dann lässt sich darüber reden wie man sowas implementiert. Aber für das aktuelle ÜE-Konzept von C++ bringt es nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225641</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 07:43:59 GMT]]></title><description><![CDATA[<p>Eine Initialisierungsreihenfolge lässt sich im Übrigen auch festlegen - daran solls nicht scheitern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225642</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 07:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 09:22:33 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Lösung mit statischem Konstruktor:</p>
<pre><code class="language-cpp">std::ofstream of;
 
std::ostream&amp; get_stream() { return of; }
 
static : of(filename)
{
	set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
}
</code></pre>
<p>Viel kürzer, übersichtlicher, und drückt meine Intention direkt aus.</p>
</blockquote>
<p>Hmm ich weiß nicht, ob man &quot;globale Objekte&quot; jetzt wirklich besser unterstützen sollte. Gibt ja genug Probleme mit der Initialisierungsreihenfolge. Wie wär es damit:</p>
<pre><code class="language-cpp">std::ostream&amp; get_stream()
{
  static std::ostream&amp; os_ref = []()-&gt;std::ostream&amp;
  {
    static std::ostream os (filename);
    set_time_formatting(of, &quot;%Y/%m/%d %H:%M:%S.%f&quot;);
    return os;
  }();
  return os_ref;
}
</code></pre>
<p>?</p>
<p>(beide <code>static</code> s sind hier wichtig)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225687</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 21 Jun 2012 09:22:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 09:23:46 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Eine Initialisierungsreihenfolge lässt sich im Übrigen auch festlegen - daran solls nicht scheitern.</p>
</blockquote>
<p>Wie willst du die denn festlegen? Mach mal einen Vorschlag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225692</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 21 Jun 2012 09:23:46 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 10:21:50 GMT]]></title><description><![CDATA[<p>Genau wie bei Klassenmembern: Definitionsreihenfolge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225719</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 10:21:50 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 11:13:07 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Genau wie bei Klassenmembern: Definitionsreihenfolge.</p>
</blockquote>
<p>Ah, dann hast du an etwas anderes gedacht, nämlich an die Definitionsreihenfolge innerhalb einer Übersetzungseinheit. Die ist ja, soweit ich weiß, auch schon festgelegt. Aber es ist nicht festgelegt, in welcher Reihenfolge die Objekte <em>unterschiedlicher Übersetzungseinheiten</em> dran kommen. Siehe <a href="https://www.google.de/search?q=static+initialization+order+fiasco+c%2B%2B" rel="nofollow">static initialization order fiasco</a>. Deswegen sind &quot;static function locals&quot; mit ihrer &quot;lazy initialization&quot; da viel interessanter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225733</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 21 Jun 2012 11:13:07 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 14:52:30 GMT]]></title><description><![CDATA[<p>Eine Initialisierungsreihenfolge zwischen UE's festzulegen ergibt überhaupt keinen Sinn. UE's sind schließlich unabhängig voneinander.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225833</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 14:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 14:56:33 GMT]]></title><description><![CDATA[<p>Heißt wenn du get_stream in einem anderen &quot;statischen globalen Konstruktor&quot; aufrufst, ist der Stream u.U. noch gar nicht initialisiert.. (Bei allen anderen Methoden ist das kein Problem.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225834</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 21 Jun 2012 14:56:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 14:57:32 GMT]]></title><description><![CDATA[<p>Na und? Ist doch egal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225836</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 14:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 15:01:02 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Na und? Ist doch egal...</p>
</blockquote>
<p>Bis auf dass dein Programm halt wegen einer Access Violation abschmiert.</p>
<p>Aber bis auf diese Kleinigkeit ists egal, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225839</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 21 Jun 2012 15:01:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 15:03:18 GMT]]></title><description><![CDATA[<p>Ich verwende sie doch gar nicht vor main(), also wo liegt euer Problem? Gleich mal voreilig beschweren, obwohl man die Verwendung nicht kennt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225842</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 15:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 15:05:30 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Ich verwende sie doch gar nicht vor main(), also wo liegt euer Problem? Gleich mal voreilig beschweren, obwohl man die Verwendung nicht kennt?</p>
</blockquote>
<p>Es ging um Übersetzungseinheiten und Initialisierungsreihenfolge. Und nicht ob jetzt ein konkreter Code funktioniert - deine Idee ist Broken By Design. Das ist der Punkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225843</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 21 Jun 2012 15:05:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 15:09:59 GMT]]></title><description><![CDATA[<p>Tjoah, UB ist eben UB. Ein guter Compiler warnt vor sowas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225846</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 15:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 16:07:49 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Tjoah, UB ist eben UB. Ein guter Compiler warnt vor sowas.</p>
</blockquote>
<p>Vor manchen kann auch ein Compiler nicht warnen.</p>
<p>Ganz davon abgesehen können die Auswirkungen recht langwierige Suchen erfordern (Wir hatten in einem Projekt einen solchen Fall, den Fehler haben wir erst Wochen später entdeckt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225874</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 21 Jun 2012 16:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vorschlag für den nächsten C++-Standard: Statische Konstruktoren und Destruktoren on Thu, 21 Jun 2012 16:43:09 GMT]]></title><description><![CDATA[<p>Das Problem gabs aber auch schon vorher und ist auch nicht das, welches ich durch dieses Feature lösen möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225889</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 21 Jun 2012 16:43:09 GMT</pubDate></item></channel></rss>