我真正想要的是,我怎么知道每个C++初始化阶段何时真正完成?检测静态初始化阶段?
有简单的东西被分配的静态初始化。然后是动态静态初始化,其中更复杂的静态分配被赋予,这不是跨'翻译单位'定义的。这太可怕了,并且没有很多简单的方法可以应付。我在地方使用名称空间来做加载头文件时发生的立即分配,但是这里的缺陷是,这可能会在其中一个初始化阶段被覆盖。
我可以设置初始化为它做“正确的事”的功能,但它会容易得多,如果我能知道我在某种程度上是什么“的阶段”。据我所知,这是不可能的,但我希望在那里有人会有一些好消息。
我已经解决了导致这个问题的问题,这是代码没有被意外地链接,因为它在项目中。知道这个答案仍然很好,但我猜测答案是'没有办法知道肯定'。
我编辑的问题,我真的不想知道主要是本身开始。
我认为如果你正在根据你的设计是否已经开始你正在吠叫错误的树。听起来好像你正在创建一个脆弱的框架,如果你说在多线程环境中使用它,以后可能会有技术上的困难。 – 2009-11-19 08:54:46
你需要什么?我从来没有见过这种情况会有用。你可以重新设计,让问题消失吗? – Thomas 2009-11-19 08:56:20
它不只是看到main是否启动,当然如果我在main调用某个东西,main就开始了。我想知道的原因是,在初始化运行时知道我处于什么阶段会很高兴。 – 2009-12-03 04:24:08