static-order-fiasco相关内容

查找 C++ 静态初始化顺序问题

我们在 静态初始化顺序方面遇到了一些问题惨败,我正在寻找方法来梳理大量代码以找到可能的事件.有关如何有效地做到这一点的任何建议? 编辑:关于如何解决静态初始化顺序问题,我得到了一些很好的答案,但这不是我的问题.我想知道如何查找受此问题影响的对象.在这方面,埃文的回答似乎是迄今为止最好的;我不认为我们可以使用 valgrind,但我们可能有可以执行类似功能的内存分析工具.这只会在给定构建的初始 ..
发布时间:2022-01-18 23:09:24 C/C++开发

静态初始化命令惨败

我正在从一本书中读到关于 SIOF 的信息,它举了一个例子: //file1.cpp外部整数 y;诠释 x=y+1;//file2.cpp外部int x;整数 y=x+1; 现在我的问题是: 在上面的代码中,会发生以下事情吗? 在编译 file1.cpp 时,编译器将 y 保留原样,即不为其分配存储空间. 编译器为 x 分配存储空间,但不初始化它. 编译 file2.cpp 时,编 ..
发布时间:2022-01-15 22:13:12 C/C++开发

静态初始化顺序失败

在他的“Thinking in C++"(第 10 章)中,Eckel 描述了一种由 Jerry Schwarz 首创的技术来解决这场惨败.他说如果我们想将 x 初始化为 100 并将 y 初始化为 200 并在所有翻译单元之间共享它们,我们会创建一个如下所示的 Initializer.h:> extern int x;外部接口 y;类初始化器{静态 int initCount;//if (in ..
发布时间:2022-01-05 20:31:05 C/C++开发

查找C++静态初始化顺序问题

我们在 静态初始化顺序方面遇到了一些问题惨败,我正在寻找方法来梳理大量代码以查找可能出现的情况.关于如何有效地做到这一点有什么建议吗? 编辑:关于如何解决静态初始化顺序问题,我得到了一些很好的答案,但这并不是我真正的问题.我想知道如何查找受此问题影响的对象.到目前为止,埃文的回答似乎是最好的;我不认为我们可以使用 valgrind,但我们可能有可以执行类似功能的内存分析工具.这只会在给定构建 ..
发布时间:2021-12-01 15:50:37 C/C++开发

在C ++中重现静态初始化顺序fiasco

我阅读了关于应用程序崩溃的C ++中的静态初始化顺序fiasco。我想我理解它,但仍有几个问题: 1)如果我想重现这个问题,我该怎么做(这样我的程序应该崩溃)?我想写一个测试程序来重现崩溃。如果可能,请您提供源代码吗? 2)我阅读了这个 C ++ FAQ Lite 文章,它说它有两个静态对象,x和y,在两个不同的文件,并调用x的方法。它可能作为全局静态成员具有文件级别范围? 3) ..
发布时间:2016-10-30 04:15:42 C/C++开发

初始化嵌入在静态库中的qt资源

我有下面的情况:我需要在独立的静态库创建窗口小部件,然后将与最终应用程序(visual c ++ 9.0,qt 4.5)链接。 此静态小部件库包含一些资源(图标),并由几个.cpp文件(每个包含独立的小部件)组成。据我所知,我必须初始化qt资源系统,如果我使用它们(资源)在静态库,调用“Q_INIT_RESOURCE(resource_file_name)”。我用下面的代码(在静态库中的每个.c ..
发布时间:2016-10-22 18:40:20 C/C++开发

防止静态初始化顺序“fiasco”,C ++

一旦我阅读了一个真棒的C ++常见问题(这是真的很好! https://isocpp.org/faq )和阅读主题关于如何防止静态初始化顺序“fiasco”。因此,作者建议将静态变量包装到函数中,从而通过维护变量的创建顺序来防止“fiasco”。但在我看来这是一个粗鲁的解决方法。所以我的问题是,是否有任何现代的,更多的模式导向的方式来防止这种“失败”,但将“静态东西”包装函数? 解决方案 ..

C ++静态初始化顺序

当我在C ++中使用静态变量时,我最终想要初始化一个变量传递给它的构造函数。换句话说,我想创建依赖于彼此的静态实例。 在单个.cpp或.h文件中,这不是问题:实例将按照声明的顺序创建。但是,当您想要在另一个编译单元中使用实例初始化静态实例时,似乎无法指定该顺序。结果是,根据天气,可能发生构建依赖于另一个的实例,并且之后才构造另一个实例。结果是第一个实例被初始化不正确。 有谁知道如何确保 ..

查找C ++静态初始化顺序问题

我们遇到了静态初始化顺序fiasco 的问题,我正在寻找方法梳理整个大量的代码,以找到可能的情况。有关如何有效地执行此操作的任何建议? 编辑:我得到一些关于如何解决静态初始化顺序问题的好的答案,但这不是我的问题。我想知道如何查找受这个问题的对象。 Evan的答案似乎是迄今为止在这方面最好的;我不认为我们可以使用valgrind,但我们可能有内存分析工具,可以执行类似的功能。这将捕获问题只有在 ..
发布时间:2016-10-11 20:09:30 C/C++开发