Я починаю новий проект C ++ і почав шукати найновіші у стилі C ++. Я закінчився тут щодо іменування файлів і думав, що поділюсь тим, як придумав свій вибір. Ось:
Stroustrup сприймає це скоріше як діловий розгляд, ніж технічний .
Дотримуючись його порад, давайте перевіримо, що очікує ланцюжок інструментів.
Для UNIX / Linux ви можете інтерпретувати такі правила GNU за замовчуванням як перевагу суфіксу назви файлу .cc, оскільки правила .cpp та .C є лише псевдонімами:
$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)
(Примітка. Псевдонім COMPILE.cxx за замовчуванням не існує)
Тож якщо ви орієнтуєтесь на UNIX / Linux, і .cc і .cpp - дуже хороші варіанти.
Орієнтуючись на Windows, ви шукаєте проблеми з .C, оскільки його файлова система не відрізняється від регістру. І вам може бути важливо відзначити, що Visual Studio надає перевагу суфіксу .cpp
Орієнтуючись на macOS, зверніть увагу, що Xcode віддає перевагу .cpp / .hpp (щойно встановлено на Xcode 10.1). Ви завжди можете змінити шаблон заголовка для використання .h.
Що варто, ви можете також базувати своє рішення на базі коду, який вам подобається. Google, наприклад, використовує .cc і LLVM libc ++ .cpp.
Що з файлами заголовків? Вони компілюються в контексті файлів C або C ++, тому немає компілятора або системи побудови, щоб відрізняти .h від .hpp. Виділення синтаксису та автоматичне відступ редактором / IDE можуть бути проблемою, однак це виправлено шляхом приєднання всіх файлів .h до режиму C ++. Наприклад, конфігурація emacs в Linux завантажує всі файли .h у режимі C ++, і він добре редагує заголовки C. Крім того, змішуючи C і C ++, ви можете дотримуватися цієї поради .
Мій особистий висновок : .cpp / .h - шлях найменшого опору.