Clang warnt (bei Verwendung von -Weverything
oder Wglobal-constructors
) über Konstruktoren für statische Objekte.Wie mit Global-Konstruktor Warnung in Clang umgehen?
warning: declaration requires a global constructor
[-Wglobal-constructors]
A A::my_A; // triggers said warning
^~~~
Warum ist das relevant und wie soll man mit dieser Warnung umgehen?
Einfaches Beispiel Code:
class A {
// ...
static A my_A;
A();
};
A A::my_A; // triggers said warning
auf CR_DEFINE_STATIC_LOCAL basieren können wir die Warnung sehen, bitte? – jrok
ist dies in einer .h-Datei? – yngccc
Sie haben ein Objekt von A innerhalb der Klasse A. Wie funktioniert das? Wird dies rekursiv - auch wenn das Objekt statisch ist? Obwohl es nur einen my_A gibt und die Rekursivität keine Probleme verursacht, kann ich immer noch 'A;; & dann .mY_A.my_A.my_A.my_A usw. – user93353