// Copyright (C) 2020 Jérôme Leclercq // This file is part of the "Nazara Engine - Core module" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_MODULES_HPP #define NAZARA_MODULES_HPP #include namespace Nz { namespace Detail { template struct BuildDepList; template struct ModuleTuple : ModuleTuple, ModuleTuple { template ModuleTuple(ModuleConfig&&... configs); }; template struct ModuleTuple { template ModuleTuple(ModuleConfig&&... configs); Module m; }; } template class Modules { public: template Modules(ModuleConfig&&... configs); ~Modules() = default; private: using OrderedModuleList = TypeListUnique>::Result>; using Tuple = TypeListInstantiate; Tuple m_modules; }; } #include #endif