Added equality operator

This commit is contained in:
Benoit Blanchon
2014-11-03 14:37:50 +01:00
parent 429d5011b4
commit 7cdf7b1769

View File

@ -56,11 +56,12 @@ class JsonValue {
operator JsonArray &() const;
operator JsonObject &() const;
JsonArray &asArray() { return static_cast<JsonArray &>(*this); };
JsonObject &asObject() { return static_cast<JsonObject &>(*this); };
const char *asString() const { return this->as<const char *>(); }
JsonArray &asArray() const { return this->as<JsonArray &>(); };
JsonObject &asObject() const { return this->as<JsonObject &>(); };
template <typename T>
T as() {
T as() const {
return static_cast<T>(*this);
}
@ -78,4 +79,14 @@ class JsonValue {
Internals::JsonValueContent _content;
static JsonValue _invalid;
};
template <typename T>
inline bool operator==(const JsonValue &left, T right) {
return left.as<T>() == right;
}
template <typename T>
inline bool operator==(T left, const JsonValue &right) {
return left == right.as<T>();
}
}