При попытке добавить drawSystem появляется ошибка. Такое ТОЛЬКО, если структура наследует и IInitSystem и IRunSystem
E0286 base class "JazzyEcs::IEcsSystem" is ambiguous
// структура DrawSystem
struct DrawSystem : JazzyEcs::IInitSystem, JazzyEcs::IRunSystem {
void Init() {
std::cout << "WIN!!! 2" << std::endl;
}
void Run() {
std::cout << "Run!!1111" << std::endl;
}
};
// ---
// Добавление
DrawSystem drawSystem{};
initSystems.Add(&drawSystem); // ТУТЬ
// ---
// метод Add
void EcsSystems::Add(IEcsSystem* system) {
_systems.push_back(system);
if (IRunSystem* runSystem = static_cast<IRunSystem*>(system)) {
_runSystems.push_back(runSystem);
}
}
// ---
// Структуры EcsSystems
struct IEcsSystem{
};
struct IInitSystem : IEcsSystem {
virtual void Init(void) { std::cout << "Init" << std::endl; }
};
struct IRunSystem : IEcsSystem {
virtual void Run(void) { std::cout << "Run" << std::endl; }
};
// ---