Estoy comenzando un nuevo proyecto C ++ y comencé a buscar lo último en estilo C ++. Terminé aquí con respecto a la denominación de archivos y pensé que compartiría cómo se me ocurrió mi elección. Aquí va:
Stroustrup ve esto más como una consideración comercial que técnica .
Siguiendo su consejo, verifiquemos qué esperan las cadenas de herramientas.
Para UNIX / Linux, puede interpretar las siguientes reglas predeterminadas de creación de GNU que favorecen el sufijo de nombre de archivo .cc, ya que las reglas .cpp y .C son solo alias:
$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)
(Nota: no hay un alias COMPILE.cxx predeterminado)
Entonces, si está apuntando a UNIX / Linux, tanto .cc como .cpp son muy buenas opciones.
Al apuntar a Windows, está buscando problemas con .C, ya que su sistema de archivos no distingue entre mayúsculas y minúsculas. Y puede ser importante que tenga en cuenta que Visual Studio favorece el sufijo .cpp
Al apuntar a macOS, tenga en cuenta que Xcode prefiere .cpp / .hpp (recién verificado en Xcode 10.1). Siempre puede cambiar la plantilla de encabezado para usar .h.
Por lo que vale, también puede basar su decisión en las bases de código que desee. Google usa .cc y LLVM libc ++ usa .cpp, por ejemplo.
¿Qué pasa con los archivos de encabezado? Se compilan en el contexto de un archivo C o C ++, por lo que no hay necesidad de compilar o compilar el sistema para distinguir .h de .hpp. Sin embargo, el resaltado de sintaxis y la sangría automática de su editor / IDE pueden ser un problema, pero esto se soluciona asociando todos los archivos .h a un modo C ++. Como ejemplo, mi configuración de emacs en Linux carga todos los archivos .h en modo C ++ y edita los encabezados C muy bien. Más allá de eso, al mezclar C y C ++, puede seguir este consejo .
Mi conclusión personal : .cpp / .h es el camino de menor resistencia.