#pragma once #include #include #include #include #include namespace gdpm{ class error; /* Base class to prevent derived class from creating copies. */ class non_copyable{ public: non_copyable(){} private: non_copyable(const non_copyable&); non_copyable& operator=(const non_copyable&); }; /* Base class to prevent derived classes from moving objects. */ class non_movable{ non_movable(const non_movable&) = delete; non_movable(non_movable&&) = delete; }; template concept error_t = requires{ std::is_same::value; }; using string = std::string; using string_list = std::vector; using string_map = std::unordered_map; using string_pair = std::pair; using var = std::variant; template using _args_t = std::vector; using args_t = _args_t; template > using _opts_t = std::unordered_map; using opts_t = _opts_t; }