I have read llvm coding style. It say "Do not use Static Constructors". I don't understand "Static Constructor" here. It gives an example that global variables are "Static Constructor".
- Is there any else "Static Constructor"?
- I know "static initialization order fiasco". Does "Do not use Static Constructors" mean "Do not use global variables"? What is the substitute?
- LLVM wants to purge all "Static Constructor" in its project to solve the problem. How do they do it perfectly? I mean "static initialization order fiasco" will always exist if we use global variables. Even we apply "Construct On First Use", it still causes new problems. What's LLVM's perfect solution?