您将它放入全局对象的构造函数中:
void functionA();
namespace {
struct global_initializer {
global_initializer() {functionA();}
} the_global_initializer;
}
Run Code Online (Sandbox Code Playgroud)
请注意,这具有全局初始化的共同缺点:虽然同一翻译单元中的全局变量按其定义的顺序初始化,但是未定义跨翻译单元的全局变量的初始化顺序.
此外,链接器可能会选择消除未引用的对象(the_global_initializer
),这会阻止functionA()
被调用.