Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在iostream头中使用静态数据_C++_Iostream - Fatal编程技术网

C++ 在iostream头中使用静态数据

C++ 在iostream头中使用静态数据,c++,iostream,C++,Iostream,我在godbolt.org上玩的时候,注意到编译器添加了一些“空main()”,其中包含iostreamheader 在研究了标准之后,我发现需要这些标准来构造和初始化对象cin,cout,cerr,clog,wcin,wcout,wcerr,以及wclog,,如果它们尚未构造/初始化 N4606:§27.5.3.1.6 但是对于静态数据,该标准所说的全部内容是计算类Init的构造函数和析构函数调用的数量,并将其初始化为零 2为便于说明,此处提供了维护数据 as:(2.1)-静态int init

我在godbolt.org上玩的时候,注意到编译器添加了一些“空main()”,其中包含
iostream
header

在研究了标准之后,我发现需要这些标准来构造和初始化对象
cin
cout
cerr
clog
wcin
wcout
wcerr
,以及
wclog,
,如果它们尚未构造/初始化

N4606:§27.5.3.1.6

但是对于
静态
数据,该标准所说的全部内容是计算
类Init
的构造函数和析构函数调用的数量,并将其初始化为零

2为便于说明,此处提供了维护数据 as:(2.1)-静态int init_cnt,统计构造函数和 析构函数调用初始化为零的类Init

我不明白的是
static int init\u cnt的用途是什么这里?
为什么我们需要计算调用构造函数/析构函数的次数?

基于我认为如果需要那么在调用全局变量析构函数时,最后的程序可以正确地析构函数cin、cout、cerr、clog、wcin、wcout、wcerr和wclog

发件人:

~Init()

影响: 销毁类Init的对象。该函数从中减去一 存储在init_cnt中的值,如果生成的存储值为 第一,调用cout.flush()、cerr.flush()、clog.flush()、wcout.flush(), wcerr.flush(),wclog.flush()

基于此,我认为如果需要那么在调用全局变量的析构函数时,最后的程序可以正确地析构函数cin、cout、cerr、clog、wcin、wcout、wcerr和wclog

发件人:

~Init()

影响: 销毁类Init的对象。该函数从中减去一 存储在init_cnt中的值,如果生成的存储值为 第一,调用cout.flush()、cerr.flush()、clog.flush()、wcout.flush(), wcerr.flush(),wclog.flush()


看起来它只用于最后一次销毁(从CPPYPE)刷新:该类跟踪在创建第一个实例时创建了多少个实例并初始化C++流,以及在最后一个实例被破坏时刷新输出流。解释一些看起来像是只用于最后一次销毁(从CPPYPE)刷新:该类跟踪在创建第一个实例时创建了多少个实例并初始化C++流,以及在最后一个实例被破坏时刷新输出流。解释了其中的一些
27.5.3.1.6 Class ios_base::Init [ios::Init] 

namespace std {
   class ios_base::Init {
      public:
         Init();
         ~Init();
      private:
         static int init_cnt; // exposition only
   };
}