Готовый перевод Google C++ Style Guide / Google C++ Style Guide: Names and Order of Includes
Используйте стандартный порядок для читаемости и избегайте скрытых зависимостей: библиотека C, библиотека C++, заголовочные файлы других библиотек, заголовочные файлы вашего проекта.
Пути ко всем заголовочным файлам проекта должны быть записаны относительно каталога с кодом проекта без сокращений . (текущий каталог) и .. (родительский каталог). Например, google-awesome-project/src/base/logging.h должен быть включен, как
#include "base/logging.h"
В dir/foo.cc или dir/foo_test.cc, чьи главные назначения — реализация или тест содержимого dir2/foo2.h, порядок включений должен быть следующим:
dir2/foo2.h (Желательное место - подробности ниже).
Файлы стандартной библиотеки C.
Файлы стандартной библиотеки C++.
заголовочные файлы остальных библиотек.
заголовочные файлы вашего проекта.
Собственный заголовочный файл модуля включается первым для того, чтобы в случае отсутствия требуемых зависимостей в файле dir/foo2.h сборка проекта остановилась на файлах dir/foo.cc или dir/foo_test.cc. Это правило гарантирует, что ошибка компиляции вылезет в первую очередь у человека, работающего над данными файлами, а не у стороннего разработчика, работающего над совершенно другими пакетами.
dir/foo.cc и dir/foo2.h часто находятся в одном каталоге (например, base/basictypes_test.cc и base/basictypes.h), но могут быть и в разных.
В каждой секции неплохо бы расположить включения в алфавитном порядке.
Например, включения в google-awesome-project/src/foo/internal/fooserver.cc могут выглядеть так:
#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"
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/32830/114586
Переводчики: mayorovp, Dynorth
Настройки
Готово:
