我看过llvm coding style。它说“不要使用静态构造函数”。我不明白这里的“静态构造函数”。它给出了一个全局变量为“静态构造函数”的示例。
答案 0 :(得分:1)
静态构造函数在这里是一个不幸的名字。我认为它们在这里意味着任何将在main()
之前运行的变量初始化。例如,像这样的全局变量:int a = fn();
。它会在fn()
之前致电main()
。
不,这并不意味着。如果静态初始化全局变量,则可以避免惨败。例如,int a = 2
将被静态初始化。或者,constexpr构造函数的全局对象也将被静态初始化。
您必须使用可以静态初始化的全局变量。或者您可以完全删除所有全局变量。在我看来,几乎所有的全局变量都是糟糕设计的指标,如果可能的话应该避免。但是,我不知道LLVM的确切解决方案。