Структура проекта и модуля для модулей C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Структура проекта и модуля для модулей C++

Сообщение Anonymous »

Обычно я использую макет каталога вил:

Код: Выделить всё

project/
├─ src/
├─ include/
где src/ и /include зеркально отображены (в зависимости от того, какие заголовки должны быть общедоступными):

Код: Выделить всё

project/
├─ include/
│  ├─ common/
│  │  ├─ language.h
│  │  ├─ settings.h
├─ src/
│  ├─ common/
│  │  ├─ settings.cpp
│  │  ├─ error.h
│  │  ├─ file.h
│  │  ├─ language.cpp
│  ├─ flow/
│  │  ├─ flow.cpp
│  │  ├─ flow.h
│  ├─ main.cpp

является общедоступным и доступен при развертывании проекта, а src — нет.
В проекте есть только include/ и src/ в качестве каталогов включения (я указываю # включите «common/language.h», например)

Я нахожусь в процессе перехода от заголовков к модулям;
Сейчас я пытаюсь понять разделение общедоступных и Private и как это должно быть отражено в каталоге.
Можно сказать, что в приведенном выше примере один модуль будет project.common.
Однако, как следует ли это делать, поскольку часть его является общедоступной и закрытой.
Что касается заголовков, я просто включаю те заголовки, которые мне нужны (у меня нет большого файла commons.h файл).
С модулями это не так просто. Если я хочу иметь модуль project.common, который одновременно используется внешними приложениями и потребляется самим проектом.
Существуют ли согласованные соглашения или лучшие практики для создания элегантного проекта на основе модулей?
Изменить:
Под «частным» здесь я подразумеваю внутреннее использование проекта.
Например, с гипотетическим модулем project.common,
для использования самого проекта он будет экспортировать ошибку и файл< /code> - частные заголовки проекта,
при этом он должен предоставлять внешним приложениям только язык и настройки.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -c-modules
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»