c++ - 初始化标准流对象

标签 c++ io stream initialization

在什么情况下以及为什么需要这样做:

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/

相关文章:

c++ - 比较两个 CString vector 的最佳方法是什么

java - 从 IOException : network name no longer available 中恢复

c - 无法从文本文件中读取数据。

flash - 网络音频流

c++ - 具有继承的 friend 类

c++ - 土壤,NPOT 纹理问题

C++ 静态成员的多个实例

c++ - 以相反的顺序从文本文件中读取行 C++

Ruby 压缩流

python - 如何从无尽的音频流中获取和划分音频