- math.ixx -> Модуль интерфейса основного модуля
- math.cpp -> Модуль реализации модуля интерфейса основного модуля
- math_utils.ixx -> Раздел интерфейса модуля
- math_utils.cpp -> Модуль реализации раздела интерфейса модуля
Код выглядит следующим образом:
math.ixx:
Код: Выделить всё
export module math;
export import :math_utils;
export namespace ns {
class IMath {
Constructor ...
};
}
Код: Выделить всё
module math;
namespace ns {
class Math : public IMath {
public:
Math() : math(CreateMathUtils()) {}
private:
std::unique_ptr utils;
};
Код: Выделить всё
export module math:math_utils;
export namespace ns {
class IMathUtils {
public:
virtual std::string foo() = 0;
};
std::unique_ptr CreateMathUtils();
}
math_utils.cpp:
Код: Выделить всё
module math:math_utils;
// import :math_utils ?
namespace ns {
class MathUtils : IMathUtils {
public:
std::string foo() override { return foo; }
private:
std::string foo;
};
std::unique_ptr CreateMathUtils() {
return std::unique_ptr(new MathUtils());
}
Мой вопрос: невозможно ли реализовать модуль реализации для раздела модуля?
Моя среда:
- Visual Studio 2022 Версия 17.14.14
- CMake Версия: 3.31.3
- Версия набора инструментов: v143
Подробнее здесь: https://stackoverflow.com/questions/798 ... partitions
Мобильная версия