// Copyright (C) 2024 Jérôme "SirLynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Core module" // For conditions of distribution and use, see copyright notice in Export.hpp #pragma once #ifndef NAZARA_CORE_COMMANDLINEPARAMETERS_HPP #define NAZARA_CORE_COMMANDLINEPARAMETERS_HPP #include #include #include #include #include namespace Nz { class CommandLineParameters { public: inline bool GetParameter(std::string_view name, std::string_view* value) const; inline bool HasFlag(std::string_view flag) const; inline bool operator==(const CommandLineParameters& params) const; inline bool operator!=(const CommandLineParameters& params) const; static inline CommandLineParameters Parse(int argc, char** argv); static inline CommandLineParameters Parse(int argc, const Pointer* argv); private: std::unordered_map, std::equal_to<>> m_parameters; std::unordered_set, std::equal_to<>> m_flags; }; } #include #endif // NAZARA_CORE_COMMANDLINEPARAMETERS_HPP