我真正想要的是,我怎麼知道每個C++初始化階段何時真正完成?檢測靜態初始化階段?
有簡單的東西被分配的靜態初始化。然後是動態靜態初始化,其中更復雜的靜態分配被賦予,這不是跨'翻譯單位'定義的。這太可怕了,並且沒有很多簡單的方法可以應付。我在地方使用名稱空間來做加載頭文件時發生的立即分配,但是這裏的缺陷是,這可能會在其中一個初始化階段被覆蓋。
我可以設置初始化爲它做「正確的事」的功能,但它會容易得多,如果我能知道我在某種程度上是什麼「的階段」。據我所知,這是不可能的,但我希望在那裏有人會有一些好消息。
我已經解決了導致這個問題的問題,這是代碼沒有被意外地鏈接,因爲它在項目中。知道這個答案仍然很好,但我猜測答案是'沒有辦法知道肯定'。
我編輯的問題,我真的不想知道主要是本身開始。
我認爲如果你正在根據你的設計是否已經開始你正在吠叫錯誤的樹。聽起來好像你正在創建一個脆弱的框架,如果你說在多線程環境中使用它,以後可能會有技術上的困難。 – 2009-11-19 08:54:46
你需要什麼?我從來沒有見過這種情況會有用。你可以重新設計,讓問題消失嗎? – Thomas 2009-11-19 08:56:20
它不只是看到main是否啓動,當然如果我在main調用某個東西,main就開始了。我想知道的原因是,在初始化運行時知道我處於什麼階段會很高興。 – 2009-12-03 04:24:08