Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.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++;? 我发现C++中存在静态初始化FasCO问题,我只是好奇,这只是C++问题吗?或者,即使在Delphi中,C++中也已经固定了这个问题,_C++_Static_Static Order Fiasco - Fatal编程技术网

静态初始化失败是否只发生在c++;? 我发现C++中存在静态初始化FasCO问题,我只是好奇,这只是C++问题吗?或者,即使在Delphi中,C++中也已经固定了这个问题,

静态初始化失败是否只发生在c++;? 我发现C++中存在静态初始化FasCO问题,我只是好奇,这只是C++问题吗?或者,即使在Delphi中,C++中也已经固定了这个问题,,c++,static,static-order-fiasco,C++,Static,Static Order Fiasco,,每个单元都可以有初始化< /C> >和最终化节。(单位为单个源文件) 假设单元之间不存在循环依赖关系,依赖关系的初始化将先于依赖模块的初始化。定稿顺序与此相反 我认为这是一个可以避免的例子。虽然今天的工作确实存在,但是它在C++中并不是固定的。它在C中也是一个问题,不仅仅是C++。在访问器引用函数中(有效地,单例)中保持静态变量是一种稳健的选择。有助于避免可能多余的预主初始化,以及令人尴尬(但很难纠正…该船已经航行)的惨败问题。但是,这可能会导致atexit问题,具体取决于主/出口关闭后完成的

,每个单元都可以有<代码>初始化< /C> >和<代码>最终化节。(单位为单个源文件)

假设单元之间不存在循环依赖关系,依赖关系的初始化将先于依赖模块的初始化。定稿顺序与此相反


我认为这是一个可以避免的例子。虽然今天的工作确实存在,但是它在C++中并不是固定的。它在C中也是一个问题,不仅仅是C++。在访问器引用函数中(有效地,单例)中保持静态变量是一种稳健的选择。有助于避免可能多余的预主初始化,以及令人尴尬(但很难纠正…该船已经航行)的惨败问题。但是,这可能会导致atexit问题,具体取决于主/出口关闭后完成的工作量。“静态初始化失败”被高估了很多。@PeteBecker我不同意。如果您曾经使用过一个充斥着单例的代码库,这些单例最终会直接或间接地相互依赖,那么这是一个非常真实的问题,会引起真正的痛苦。当然,摆脱单例是一个解决方案,但如果有500k行代码与它们纠缠在一起,可能很难实现:(