Google C++ Style Guide / Google C++ Style Guide: Names and Order of Includes
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Используйте стандартный порядок для читабельности и избегания скрытых зависимостей: библиотеки C, библиотеки C++, .h-файлы других библиотек, .h-файлы вашего проекта. Dynorth 19.11.12 в 22:45 Используйте стандартный порядок для читаемости и избегайте скрытых зависимостей: библиотека C, библиотека C++, заголовочные файлы других библиотек, заголовочные файлы вашего проекта. mayorovp 20.11.12 в 05:56 |
|
|
Пути ко всем заголовочным файлам проекта должны быть записаны относительно каталога с кодом проекта без использования UNIX-сокращений . (текущий каталог) и .. (родительский каталог). Например, google-awesome-project/src/base/logging.h должен быть включен, как Dynorth 19.11.12 в 22:49 Пути ко всем заголовочным файлам проекта должны быть записаны относительно каталога с кодом проекта без сокращений . (текущий каталог) и .. (родительский каталог). Например, google-awesome-project/src/base/logging.h должен быть включен, как mayorovp 20.11.12 в 05:57 |
||
|
#include "base/logging.h" Dynorth 19.11.12 в 22:49 |
||
|
В dir/foo.cc или dir/foo_test.cc, чьи главные назначения — реализация или тест содержимого dir2/foo2.h, порядок включений должен быть следующим: Dynorth 19.11.12 в 22:50 |
||
|
dir2/foo2.h (Желательное место - подробности ниже). mayorovp 20.11.12 в 05:58 |
||
|
Файлы стандартной библиотеки C. Dynorth 19.11.12 в 22:52 |
||
|
Файлы стандартной библиотеки C++. Dynorth 19.11.12 в 22:52 |
||
|
.h-файлы остальных библиотек. Dynorth 19.11.12 в 22:52 заголовочные файлы остальных библиотек. mayorovp 20.11.12 в 05:58 |
||
|
.h-файлы вашего проекта. Dynorth 19.11.12 в 22:52 заголовочные файлы вашего проекта. mayorovp 20.11.12 в 05:59 |
||
|
Собственный заголовочный файл модуля включается первым для того, чтобы в случае отсутствия требуемых зависимостей в файле dir/foo2.h сборка проекта остановилась на файлах dir/foo.cc или dir/foo_test.cc. Это правило гарантирует, что ошибка компиляции вылезет в первую очередь у человека, работающего над данными файлами, а не у стороннего разработчика, работающего над совершенно другими пакетами. mayorovp 20.11.12 в 06:02 |
||
|
dir/foo.cc и dir/foo2.h часто находятся в одном каталоге (например, base/basictypes_test.cc и base/basictypes.h), но могут быть и в разных. Dynorth 19.11.12 в 22:56 |
||
|
В каждой секции неплохо бы расположить включения в алфавитном порядке. Dynorth 19.11.12 в 22:57 |
||
|
Например, включения в google-awesome-project/src/foo/internal/fooserver.cc могут выглядеть так: Dynorth 19.11.12 в 22:57 |
||
|
#include "foo/public/fooserver.h" // Желательное место mayorovp 20.11.12 в 06:03 |
