Sono d'accordo con Kerrek SB.
L'ho fatto una volta. Stavo creando una libreria di compressione eccellente e ampiamente utilizzata che doveva essere costruita separatamente per le immagini a 8 bit e per le immagini a 12 bit. Il modo più pulito con cui ho potuto inserirmi nel sistema di build era (semplificando un po ') di avere due file .cpp master, uno che imposta #defines per una build a 8 bit, l'altro per una build a 12 bit. I file master .cpp quindi #includono i file sorgente della libreria di compressione.
Va bene non seguire una regola generale se si capisce bene la regola per conoscerne i motivi e perché potrebbe non essere applicabile nel tuo caso. (Ma quei casi dovrebbero essere rari.)
fonte
2013-07-24 16:43:46
È sicuro come lo si fa. In genere non dovrebbe essere necessario. La programmazione non riguarda il seguire ciecamente un aereo da carico, ma piuttosto il * capire * cosa stai facendo e prendere decisioni basate sulla comprensione e il ragionamento. –
L'unica ragione valida che abbia mai visto per questo è risparmiare tempo sul collegamento. [Unity Build è spiegato qui] (http://stackoverflow.com/questions/543697/include-all-cpp-files-into-a-single-compilation-unit). –
@sysop: come ho detto: ** capire ** cosa stai facendo e chiedere, prima. Include sono elaborati dal * preprocessore *, molto prima che avvenga qualsiasi compilazione. Comprendi il preprocessore e saprai quando è opportuno includere le cose. –