Core/Application: Accept module configuration

This commit is contained in:
SirLynix 2023-01-21 16:17:38 +01:00 committed by Jérôme Leclercq
parent d3c05c9ade
commit a71d4885f9
2 changed files with 26 additions and 1 deletions

View File

@ -17,7 +17,9 @@ namespace Nz
class Application : public ApplicationBase
{
public:
using ApplicationBase::ApplicationBase;
template<typename... ModuleConfig> Application(ModuleConfig&&... configs);
template<typename... ModuleConfig> Application(int argc, char** argv, ModuleConfig&&... configs);
template<typename... ModuleConfig> Application(int argc, const Pointer<const char>* argv, ModuleConfig&&... configs);
Application(const Application&) = delete;
Application(Application&&) = delete;
~Application();

View File

@ -7,6 +7,29 @@
namespace Nz
{
template<typename... ModuleList>
template<typename... ModuleConfig>
Application<ModuleList...>::Application(ModuleConfig&&... configs) :
m_modules(std::forward<ModuleConfig>(configs)...)
{
}
template<typename... ModuleList>
template<typename... ModuleConfig>
Application<ModuleList...>::Application(int argc, char** argv, ModuleConfig&&... configs) :
ApplicationBase(argc, argv),
m_modules(std::forward<ModuleConfig>(configs)...)
{
}
template<typename... ModuleList>
template<typename... ModuleConfig>
Application<ModuleList...>::Application(int argc, const Pointer<const char>* argv, ModuleConfig&&... configs) :
ApplicationBase(argc, argv),
m_modules(std::forward<ModuleConfig>(configs)...)
{
}
template<typename... ModuleList>
Application<ModuleList...>::~Application()
{