Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В свою очередь, мне любопытно, как можно сделать «унифицированное подключение компонентов к проекту» без всего этого
inc/
, исходники — в src/
, в корне модуля лежит файл, отвечающий за его сборку,#include "egl_utils/inc/egl_program.h"
#include "xtree/inc/node.h"
(здесь egl_utils
и xtree
— названия внешних компонентов)«хидер»
Например, как можно подменить реализацию какого-то модуля добавив новый модуль (на уровне исходников)?
то во-первых не на уровне исходников, а на уровне библиотекЭто на уровне файлов. Задачу подменить клиентам header.h на другой, не меняя их исходного кода — решает.
а во-вторых тут опять же речь о конфигурировании в заданных рамках и без отслеживания зависимостейЕсли я правильно понимаю вашу концепцию, у вас точно так же есть «заданные рамки». Просто переменные, которые управляют конфигурацией, задаются непосредственно в исходном коде.
func.h
void func();
func.cpp
#ifdef X86
void func() {}
#elif X64
void func() {}
#elif ARM
void func() {}
#else
// unsuported system
void func() {*(NULL);}
func.h
void func();
func_x86.cpp
void func() {}
func_x64.cpp
void func() {}
func_arm.cpp
void func() {}
func.cpp
// unsuported system
void func() {*(NULL);}
тогда все вызовы функций func исчезнут из всех исходников
Привет! Отключи пожалуйста блокировку личных сообщений )
О модульности, хорошей архитектуре, внедрении зависимостей в С/C++ и разноцветных кружочках