有人可以給一個提示如何做編譯過程表達式,如C++模板代碼順序解析/ CRTP
class DerivedA: public ParentTemplateClass<DerivedA>{
}
對於MEE它看起來像:
這個男孩的父親是這個男孩的「兒子」
我的意思是,我不明白DerivedA類的「解析」是如何完成的,而無需知道父類的確切「描述」。似乎'它不能。所以父母的班級必須在孩子面前進行處理,但在這種情況下,父母依賴於孩子......而我被困在那裏。
是的,網上有一些文章描述了這種東西的用法,例如,一篇關於好奇地反覆出現的模板模式的文章( http://en.wikibooks.org/wiki/More_C++_Idioms/Curiously_Recurring_Template_Pattern),但那不是某種類似的標準模式或模糊模式。必須有明確的行爲描述,如操作順序是不是?
答案: Thnx給大家。是的,向前的decl比喻似乎對我停止破壞我的大腦合法。模板仍然是我的藝術原因,因爲它的隱藏子語言性質,我不能只是g ++ -E :)
想到這一點,就好像它是一個前向聲明。 – PlasmaHH
我認爲這是因爲「男孩的父親是根據這個特定的兒子來定義的。「我不是CRTP的粉絲 - 我懷疑它是過度使用的 - 但是對特定CRTP代碼的解釋是相對直接的。在輸入對象可以被實例化之前,模板總是被完全展開。」 – aSteve
「模板總是在之前完全展開類型化的對象可以被實例化「是的,似乎是合法的。對我來說,某種模糊效果是因爲在編譯期間實例化了Temaplate,而不是預處理。 – sohel