// Copyright (C) 2023 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // 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_CORE_APPLICATION_HPP #define NAZARA_CORE_APPLICATION_HPP #include #include #include namespace Nz { template class Application : public ApplicationBase { public: template Application(ModuleConfig&&... configs); template Application(int argc, char** argv, ModuleConfig&&... configs); template Application(int argc, const Pointer* argv, ModuleConfig&&... configs); Application(const Application&) = delete; Application(Application&&) = delete; ~Application(); template T& AddComponent(Args&&... args); Application& operator=(const Application&) = delete; Application& operator=(Application&&) = delete; private: Modules m_modules; }; } #include #endif // NAZARA_CORE_APPLICATION_HPP