Come il processo di compilazione (compilazione e collegamento) del codice sorgente in D differisce da C/C++ soprattutto per quanto riguarda le funzioni inline, il sistema di moduli di D's (anziché le intestazioni) e gli strumenti di compilazione. Come vengono riutilizzate le istanze dei modelli in D?D Processo di creazione
6
A
risposta
2
non differisce tanto, ogni modulo viene compilato al proprio file obj che poi viene collegata insieme che IIRC non è molto diverso da C/C++ processo
la differenza principale tuttavia si trovano dal fatto che le importazioni sono simbolica invece di tutto il file di C #include
che elimina la necessità di headerfiles (se l'opzione per i file .di headerlike è lì per le API closed source)
i modelli infatti devono essere incluse nei file disponibili per il compilatore però (come hanno bisogno di essere nell'intestazione per C++)
Problemi correlati
- 1. D Processo di sviluppo
- 2. Controllo di un processo interattivo utilizzando D
- 3. .net C#: Creazione di un processo asincrono
- 4. Creazione di un processo da un driver
- 5. Config.xml ignorato nel processo di creazione
- 6. Utilizzare multiDexEnabled senza Gradle ma processo di creazione Eclipse invece
- 7. Rails Creazione di un nuovo thread o processo in background
- 8. Come migliorare il processo di creazione e distribuzione?
- 9. Perché il processo di creazione Titanium è lento?
- 10. Concorrenza in stile Erlang nel linguaggio di programmazione D
- 11. Automazione della creazione del pacchetto NuGet come parte del processo di creazione
- 12. C "% d" di formato
- 13. D esempi di ecc.ccl
- 14. D-Bus: pratiche di miglioramento delle prestazioni
- 15. In java -D cosa significa la D?
- 16. Cosa è (\ d +)/(\ d +) in regex?
- 17. D-Bus: esiste uno "sniffer D-Bus"?
- 18. differenze tra "d = dict()" e "d = {}"
- 19. Qual è lo stato stack del kernel del processo Linux durante la creazione del processo?
- 20. in D
- 21. Come allegare un debugger alla creazione del processo?
- 22. Chiamate di processo asincrono
- 23. equivalente di remove_if in D
- 24. Problema di collegamento D-Bus
- 25. Classe di memorizzazione "in" D
- 26. Vim Janus <D-F><D-/>
- 27. Ignora su! T() per T-D definito utilizzato in D?
- 28. Come impostare d: DataContext d: DesignInstance il DataGrid
- 29. Che codice è questo?/^ (\ d {4} | \ d {6}) $/
- 30. differenza tra funzione (d) e funzione (d, i)?
Immagino che le istanze dei template vengano riutilizzate in D nello stesso modo in cui i template extern funzionano in C++ 11. Questo è tutto ciò che posso contribuire a questa discussione. –
Credo in una compilazione di file multipli, l'istanziazione dei modelli viene eseguita una sola volta quindi archiviata in uno dei file oggetto generato. Ma non sono abbastanza sicuro di scrivere una risposta. Quando si compila in questo modo, le funzioni inline superano sempre i limiti dei moduli, come farebbero se venisse utilizzata la generazione del codice link-time in C++. A PARER MIO! – ponce
@ponce non ci sono link time code gen attualmente solo qualche ottimizzazione –