Здравствуйте, Ytz, Вы писали:
Ytz>Многие известные мне стандарты кодирования запрещают использовать в директиве включения заголовочного файла шорткаты вида ../ (директория на уровень выше). Я четно говоря ни на одной из платформ на которых я работал (Windows, Linux, MacOS) проблем с использованием этих конструкций не встречал. Если вы сталкивались с проблемами при использовании шорткатов, пожалуйста расскажите.
Проблема с использованием двух точек не в двух точках самих по себе а в том, что если их приходится использовать, значит у вас бардак в дереве исходников, и все части бесконтрольно ссылаются друг на друга, вместо наличия ясной структуры.
Ytz>И еще вопрос. Некоторые стандарты кодирования идут дальше и запрещают использовать конструкцию "foo.h", только <foo.h>. А это уже на мой взгляд рекомендация вредная, так как рискуем при компиляции получить файл не из каталога с проектом, а из истановленной в системе библиотеке. Что вы думаете об этом?
Я обычно использую следующее правило: ашники, локальные для данного компонента (скажем, для библиотеки) живут в той же директории, что и сишники и включаются через ковычки. Интерфейсные ашники живут в отдельной директории и включаются через угловые скобки. Чтобы не было конфликта имен, организуйте свою директорию с интерфейсными ашниками таким образом, чтобы включать их можно было так: #include <foo/bar.h> "foo" — название вашей организации или проекта. Если ашников много, можно использовать более одного уровня вложенности (#include <org/proj/foo.h>)
Заметьте, если интерфейсные ашники собраны в отдельную кучку со своей чёткой организацией, то и двоеточие использовать не надо.