如果某个编译单元A内部初始化时使用了另外一个编译单元B里面的non-local static对象,则编译时是不确定A使用了B中的对象是否初始化的。那么就有可能引起灾难,为了避免这个灾难我们找到了一种新方法:
它使用了一个特性,函数内的本地静态对象会在“该函数被调用期间” “首次遇上该对象之定义式”时被初始化,如果使用“函数调用”(返回一个本地静态对象的引用)替换直接访问全局对象,就可以获得一个保证那个引用获得的是历经初始化的对象。
如果某个编译单元A内部初始化时使用了另外一个编译单元B里面的non-local static对象,则编译时是不确定A使用了B中的对象是否初始化的。那么就有可能引起灾难,为了避免这个灾难我们找到了一种新方法:
它使用了一个特性,函数内的本地静态对象会在“该函数被调用期间” “首次遇上该对象之定义式”时被初始化,如果使用“函数调用”(返回一个本地静态对象的引用)替换直接访问全局对象,就可以获得一个保证那个引用获得的是历经初始化的对象。