FAQ: How do I prevent the "static initialization order fiasco"? ←(in the new Super-FAQ)
It's in Section: Constructors:
- FAQ: What's the deal with constructors?
- FAQ: Is there any difference between List x; and List x();?
- FAQ: Can one constructor of a class call another constructor of the same class to initialize the this object?
- FAQ: Is the default constructor for Fred always Fred::Fred()?
- FAQ: Which constructor gets called when I create an array of Fred objects?
- FAQ: Should my constructors use "initialization lists" or "assignment"?
- FAQ: Should you use the this pointer in the constructor?
- FAQ: What is the "Named Constructor Idiom"?
- FAQ: Does return-by-value mean extra copies and extra overhead?
- FAQ: Does the compiler optimize returning a local variable by value?
- FAQ: Why can't I initialize my static member data in my constructor's initialization list?
- FAQ: Why are classes with static data members getting linker errors?
- FAQ: Can I add = initializer; to the declaration of a class-scope static const data member?
- FAQ: What's the "static initialization order fiasco"?
- FAQ: How do I prevent the "static initialization order fiasco"? (this FAQ)
- FAQ: Why doesn't the construct-on-first-use idiom use a static object instead of a static pointer?
- FAQ: How do I prevent the "static initialization order fiasco" for my static data members?
- FAQ: Do I need to worry about the "static initialization order fiasco" for variables of built-in/intrinsic types?
- FAQ: How can I handle a constructor that fails?
- FAQ: What is the "Named Parameter Idiom"?
- FAQ: Why am I getting an error after declaring a Foo object via Foo x(Bar())?
- FAQ: What is the purpose of the explicit keyword?