Google C++ Style Guide / Google C++ Style Guide: Names and Order of Includes

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Используйте стандартный порядок для читабельности и избегания скрытых зависимостей: библиотеки C, библиотеки C++, .h-файлы других библиотек, .h-файлы вашего проекта.

Dynorth 19.11.12 в 22:45

0

Используйте стандартный порядок для читаемости и избегайте скрытых зависимостей: библиотека C, библиотека C++, заголовочные файлы других библиотек, заголовочные файлы вашего проекта.

mayorovp 20.11.12 в 05:56

0

Пути ко всем заголовочным файлам проекта должны быть записаны относительно каталога с кодом проекта без использования UNIX-сокращений . (текущий каталог) и .. (родительский каталог). Например, google-awesome-project/src/base/logging.h должен быть включен, как

Dynorth 19.11.12 в 22:49

0

Пути ко всем заголовочным файлам проекта должны быть записаны относительно каталога с кодом проекта без сокращений . (текущий каталог) и .. (родительский каталог). Например, google-awesome-project/src/base/logging.h должен быть включен, как

mayorovp 20.11.12 в 05:57

0

#include "base/logging.h"

Dynorth 19.11.12 в 22:49

1

В dir/foo.cc или dir/foo_test.cc, чьи главные назначения — реализация или тест содержимого dir2/foo2.h, порядок включений должен быть следующим:

Dynorth 19.11.12 в 22:50

0

dir2/foo2.h (Желательное место - подробности ниже).

mayorovp 20.11.12 в 05:58

0

Файлы стандартной библиотеки C.

Dynorth 19.11.12 в 22:52

1

Файлы стандартной библиотеки C++.

Dynorth 19.11.12 в 22:52

1

.h-файлы остальных библиотек.

Dynorth 19.11.12 в 22:52

0

заголовочные файлы остальных библиотек.

mayorovp 20.11.12 в 05:58

1

.h-файлы вашего проекта.

Dynorth 19.11.12 в 22:52

0

заголовочные файлы вашего проекта.

mayorovp 20.11.12 в 05:59

1

Собственный заголовочный файл модуля включается первым для того, чтобы в случае отсутствия требуемых зависимостей в файле dir/foo2.h сборка проекта остановилась на файлах dir/foo.cc или dir/foo_test.cc. Это правило гарантирует, что ошибка компиляции вылезет в первую очередь у человека, работающего над данными файлами, а не у стороннего разработчика, работающего над совершенно другими пакетами.

mayorovp 20.11.12 в 06:02

0

dir/foo.cc и dir/foo2.h часто находятся в одном каталоге (например, base/basictypes_test.cc и base/basictypes.h), но могут быть и в разных.

Dynorth 19.11.12 в 22:56

1

В каждой секции неплохо бы расположить включения в алфавитном порядке.

Dynorth 19.11.12 в 22:57

0

Например, включения в google-awesome-project/src/foo/internal/fooserver.cc могут выглядеть так:

Dynorth 19.11.12 в 22:57

0

#include "foo/public/fooserver.h" // Желательное место
#include <sys/types.h>
#include <unistd.h>
#include <hash_map>
#include <vector>
#include "base/basictypes.h"
#include "base/commandlineflags.h"
#include "foo/public/bar.h"

mayorovp 20.11.12 в 06:03

0
Минутку...