Sto iniziando un nuovo progetto C ++ e ho iniziato a cercare le ultime novità in stile C ++. Sono finito qui per quanto riguarda la denominazione dei file e ho pensato che avrei condiviso il modo in cui ho trovato la mia scelta. Ecco qui:
Stroustrup lo vede più come una considerazione aziendale che tecnica .
Seguendo il suo consiglio, controlliamo cosa si aspettano le toolchain.
Per UNIX / Linux, puoi interpretare le seguenti GNU predefinite come regole per favorire il suffisso del nome file .cc, poiché le regole .cpp e .C sono solo alias:
$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)
(Nota: non esiste un alias COMPILE.cxx predefinito)
Quindi se stai prendendo di mira UNIX / Linux, sia .cc che .cpp sono ottime opzioni.
Quando scegli come target Windows, stai cercando problemi con .C, poiché il suo file system non fa distinzione tra maiuscole e minuscole. E potrebbe essere importante notare che Visual Studio favorisce il suffisso .cpp
Quando prendi di mira macOS, nota che Xcode preferisce .cpp / .hpp (appena verificato su Xcode 10.1). Puoi sempre cambiare il modello di intestazione per usare .h.
Per quello che vale, puoi anche basare la tua decisione sulle basi di codice che ti piacciono. Google usa .cc e LLVM libc ++ usa .cpp, per esempio.
E i file di intestazione? Sono compilati nel contesto di un file C o C ++, quindi non è necessario compilare o compilare il sistema per distinguere .h da .hpp. L'evidenziazione della sintassi e il rientro automatico da parte del tuo editor / IDE possono tuttavia rappresentare un problema, ma questo problema viene risolto associando tutti i file .h a una modalità C ++. Ad esempio, my emacs config su Linux carica tutti i file .h in modalità C ++ e modifica le intestazioni C bene. Oltre a ciò, quando si mescolano C e C ++, è possibile seguire questo consiglio .
La mia conclusione personale : .cpp / .h è il percorso di minor resistenza.