From 5b68f46580824d47ce948ac349d43f8aa8647ec9 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 15 Jan 2015 00:21:03 +0100 Subject: Added possibility to construct Arguments in a mode in which no validation is performed. --- src/core/common/Argument.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/core/common/Argument.cpp') diff --git a/src/core/common/Argument.cpp b/src/core/common/Argument.cpp index ac1edf4..6bf2917 100644 --- a/src/core/common/Argument.cpp +++ b/src/core/common/Argument.cpp @@ -184,6 +184,9 @@ bool Argument::validate(Variant &var, Logger &logger) const /* Class Arguments */ +// Instantiations of the "None" arguments +const Arguments Arguments::None; + static std::unordered_map buildArgumentNames( std::initializer_list arguments) { @@ -205,12 +208,17 @@ static std::unordered_map buildArgumentNames( } Arguments::Arguments(std::initializer_list arguments) - : arguments(arguments), names(buildArgumentNames(arguments)) + : arguments(arguments), names(buildArgumentNames(arguments)), valid(true) { } bool Arguments::validateArray(Variant::arrayType &arr, Logger &logger) const { + // Abort if no arguments were explicitly given -- everything is valid + if (!valid) { + return true; + } + Logger nullLogger; // Fetch the number of arguments N and the initial array size n @@ -254,6 +262,11 @@ bool Arguments::validateArray(Variant::arrayType &arr, Logger &logger) const bool Arguments::validateMap(Variant::mapType &map, Logger &logger, bool ignoreUnknown) const { + // Abort if no arguments were explicitly given -- everything is valid + if (!valid) { + return true; + } + Logger nullLogger; // Fetch the number of arguments N -- cgit v1.2.3