Qualcuno può dare un suggerimento come fa espressioni di processo compilatore comeC++ modello di ordine codice di analisi/CRTP
class DerivedA: public ParentTemplateClass<DerivedA>{
}
Per mee assomiglia:
il padre di questo ragazzo è un "figlio" di questo ragazzo
Voglio dire, non è ovvio per me come "parsing" della classe DerivedA possa essere completato SENZA conoscere esattamente la "descrizione" della classe genitore. Sembra che non possa. Quindi la classe genitore deve essere elaborata prima dei bambini, ma in tale situazione il genitore dipende dai figli ... e io sono bloccato lì.
Sì, alcuni articoli sul Web descrivono l'utilizzo di tale elemento, ad es. un articolo su Pattern modello che ricorre in modo curiosamente ( http://en.wikibooks.org/wiki/More_C++_Idioms/Curiously_Recurring_Template_Pattern) ma non è una specie di standart o smth vicino. Ci deve essere una chiara descrizione del comportamento come l'ordinamento delle operazioni no?
RISPOSTA: Thnx a tutti. Sì, l'analogia con la declinazione in avanti mi sembra legittima a smettere di danneggiare il mio cervello. I modelli sono ancora stato dell'arte per me causa della sua natura sottolingua nascosti e non posso proprio g ++ -E :)
Pensateci a questo punto come se fosse una dichiarazione in avanti. – PlasmaHH
Penso a questo come "Il padre del ragazzo è definito in termini di questo specifico figlio."Non sono un fan del CRTP - sospetto che sia troppo usato - ma l'interpretazione di un codice CRTP specifico è relativamente semplice: i modelli sono sempre completamente espansi prima che gli oggetti digitati possano essere istanziati – aSteve
" I modelli sono sempre completamente espansi prima gli oggetti dattiloscritti possono essere istanziati "sì, sembra legittimo. Una specie di effetto sfocato per me è dovuto al fatto che temaplate è stato istanziato durante la compilazione e non nella pre-elaborazione. – sohel