Структура проекта и модуля для модулей 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

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