14得票4回答
防止C++中静态初始化顺序的“惨案”

我曾经阅读过一篇很棒的C++ FAQ(真的非常好!!),并阅读了有关如何防止静态初始化顺序“大灾难”的主题。因此,作者建议将静态变量封装到函数中,从而通过维护变量创建顺序来防止“大灾难”。但这对我来说似乎是一个粗暴的解决方法。那么我的问题是,是否存在现代的、更加模式化的方法来防止这种“大灾难”...

13得票1回答
确定静态初始化是否完成

简化问题(Y) 假设你需要在函数内部知道这个函数是否作为静态对象初始化的一部分被调用。是否有标准或平台特定的方法来实现这一点? 背景故事(X) 我深入研究了许多应用程序使用的 DLL 的源代码。这个 DLL 公开了一个 Init 函数,这个函数应该构造一个 boost::asio::de...

12得票1回答
安卓6.0(棉花糖)svg-android库中getDeclaredField()的静态初始化异常

我对这段代码遇到了很严重的问题,它来自于svg-android:public class ParserHelper { private static final Field STRING_CHARS; static { try { STRING_CHARS = Str...

12得票2回答
Java 合法的前向引用

以下代码是否合法的前向引用?如果是,为什么?public class MyClass { private static int x = getValue(); private static int y = 5; private static int getValue() { ...

12得票3回答
MSVC中静态常量数组是否动态初始化?

我们有一个表需要静态初始化,但是 MSVC (2015.1 和早期版本) 会生成动态初始化程序。 这是一个演示问题的简化代码: #define idaapi __stdcall #define MAXSTR 1024 typedef int error_t; typedef unsigne...

12得票2回答
gcc中模板的非推迟静态成员初始化?

gcc是否保证静态成员初始化的时间,特别是涉及模板类时? 我想知道是否可以得到一个硬性保证,即在多个编译单元实例化类时,静态成员(PWrap_T<T>::p_s)将在main()之前初始化。尝试在每个编译单元中手动触摸符号以在main开始时启动不切实际,但我不确定是否有其他方法。...

11得票2回答
静态初始化的非字面量对象的销毁顺序

一道最近的问题引起了我的关注,它涉及到C++14中constexpr如何改变。新特性是,如果一个具有静态存储期的非局部变量的初始化器由一个constexpr构造函数组成,即使变量的类型不是字面类型,也可以在静态初始化阶段进行初始化。更准确地说,在[basic.start.init]中的新措辞为...

11得票7回答
我能在C++中访问正在构建的静态局部变量吗?

根据C++标准,静态局部变量保证在第一次使用时被实例化。然而,如果在构造过程中访问静态局部对象会发生什么我很好奇。我认为这是未定义的行为。但在下面这种情况下,有什么最佳实践可以避免这种情况呢? 问题情况 Meyers单例模式在静态getInstance()方法中使用静态局部变量,在第一次使...

11得票7回答
静态变量初始化?

我想知道为什么C、C++和Java中的静态变量默认以零初始化?而对于局部变量则不是这样呢?

11得票2回答
Lambdaj FinalClassArgumentCreators的应用程序级配置。在哪里以及如何进行配置?

我们在配置lambdaj与Joda Time一起工作时遇到了问题。由于LocalDate是一个final类,Lambdaj需要这样初始化:(请参见bug 70)public class LocalDateArgumentCreator implements FinalClassArgument...