stop calling validate() in newReader/Writer()
By not calling validate(), we can add
non-invasive features which will be simply ignored when user-code
is compiled against an old version. That way, we can often
avoid a minor version-bump.
The user can call validate() himself if he prefers that behavior.
diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp
index 1e7db68..103bf67 100644
--- a/src/lib_json/json_reader.cpp
+++ b/src/lib_json/json_reader.cpp
@@ -1863,9 +1863,6 @@
{}
CharReader* CharReaderBuilder::newCharReader() const
{
- if (!validate(NULL)) throw std::runtime_error("invalid settings");
- // TODO: Maybe serialize the invalid settings into the exception.
-
bool collectComments = settings_["collectComments"].asBool();
OurFeatures features = OurFeatures::all();
features.allowComments_ = settings_["allowComments"].asBool();
diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp
index ca62c78..29f6619 100644
--- a/src/lib_json/json_writer.cpp
+++ b/src/lib_json/json_writer.cpp
@@ -968,9 +968,6 @@
{}
StreamWriter* StreamWriterBuilder::newStreamWriter() const
{
- if (!validate(NULL)) throw std::runtime_error("invalid settings");
- // TODO: Maybe serialize the invalid settings into the exception.
-
std::string indentation = settings_["indentation"].asString();
std::string cs_str = settings_["commentStyle"].asString();
bool eyc = settings_["enableYAMLCompatibility"].asBool();