階段7:分隔標記的空白字符不再顯着。 每個預處理令牌都被轉換爲令牌。得到的 令牌在語法和語義上進行分析並翻譯爲 翻譯單元。階段8:翻譯的翻譯單元和實例化單元如下組合 :檢查每個翻譯的翻譯單元,以產生所需實例的列表 。所需的 模板的定義已定位。它是實現定義是否需要包含這些定義的翻譯單元的來源 可用。所有需要的實例化都執行到 產生實例化單元[注:這些實例與翻譯的 翻譯單元類似,但不包含對未被實例化的 模板的引用並且沒有模板定義。 - 結束]如果任何實例化失敗,該程序是 格式不正確。C++ 11翻譯階段8混淆
我已經刪除了一些註釋以縮短粘貼的文本。
爲什麼在翻譯單元已經在C++編譯階段8中翻譯之後,模板是否定位和實例化?考慮到兩階段名稱查找,這些步驟是否不應該在階段7中進行?
一遍又一遍地讀這個問題我有點覺得你誤解了「編程問題的問答網站」實際上意味着什麼。你不會因爲「學習編程」而留下「你自己理解的問題」,然後期待一個答案。 – hakre
我會嘗試澄清hakre的評論:在幾乎所有情況下,最好只有一個SO問題只包含一個編程問題,例如「爲什麼C++編譯階段8中的模板定義位置步驟?」帶有標準摘要的問題文本,並提到第7階段的兩階段查找。僅此一項就是一個問題。在單個問題中填充太多會減少問題對於SO的價值,並減少您得到的答案數量。另請參閱[FAQ](http://stackoverflow.com/faq)。 – gimpf
感謝您澄清hakre的評論gimpf,希望這次更好,儘管在我看來你似乎理解了這些問題。當我試圖向某人解釋某件事情時,我傾向於將他不理解的事物分開,並依次處理這些事件;我覺得這樣做更好,更高效,所以我選擇了初始佈局。 – Dan