diff --git a/src/json-validator.cpp b/src/json-validator.cpp index 8fc4b5a..b84c026 100644 --- a/src/json-validator.cpp +++ b/src/json-validator.cpp @@ -1129,16 +1129,22 @@ namespace json_schema json_validator::json_validator(schema_loader loader, format_checker format) - : root_(std::unique_ptr(new root_schema(loader, format))) + : root_(std::unique_ptr(new root_schema(std::move(loader), std::move(format)))) { } json_validator::json_validator(const json &schema, schema_loader loader, format_checker format) - : json_validator(loader, format) + : json_validator(std::move(loader), std::move(format)) { set_root_schema(schema); } +json_validator::json_validator(json &&schema, schema_loader loader, format_checker format) + : json_validator(std::move(loader), std::move(format)) +{ + set_root_schema(std::move(schema)); +} + // move constructor, destructor and move assignment operator can be defaulted here // where root_schema is a complete type json_validator::json_validator(json_validator &&) = default; diff --git a/src/nlohmann/json-schema.hpp b/src/nlohmann/json-schema.hpp index d6e0ede..a1794cf 100644 --- a/src/nlohmann/json-schema.hpp +++ b/src/nlohmann/json-schema.hpp @@ -171,6 +171,7 @@ public: json_validator(schema_loader = nullptr, format_checker = nullptr); json_validator(json_validator &&); json_validator(const json &, schema_loader = nullptr, format_checker = nullptr); + json_validator(json &&, schema_loader = nullptr, format_checker = nullptr); ~json_validator(); json_validator &operator=(json_validator &&);