在什么情况下以及为什么需要这样做:
class ios_base::Init {
static int init_cnt; // internal static counter (for exposition only)
public:
Init();
~Init();
}
从这个站点获取它:cpluplus.com - ios_base::init
我阅读了描述并进行了冥想,但这并没有太大帮助......
最佳答案
这是 static initialization order fiasco 的解决方法.本质上,如果你想使用来自静态初始化器的全局流对象,你可以调用它来确保它们都被及时构造。我熟悉的运行时已经正确地做到了这一点,但从技术上讲并不能保证。
(另请注意,从 C++11 开始,它是有保证的。)
关于c++ - 初始化标准流对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20839384/