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 JsonArray &() const;
operator JsonObject &() const; operator JsonObject &() const;
JsonArray &asArray() { return static_cast<JsonArray &>(*this); }; const char *asString() const { return this->as<const char *>(); }
JsonObject &asObject() { return static_cast<JsonObject &>(*this); }; JsonArray &asArray() const { return this->as<JsonArray &>(); };
JsonObject &asObject() const { return this->as<JsonObject &>(); };
template <typename T> template <typename T>
T as() { T as() const {
return static_cast<T>(*this); return static_cast<T>(*this);
} }
@ -78,4 +79,14 @@ class JsonValue {
Internals::JsonValueContent _content; Internals::JsonValueContent _content;
static JsonValue _invalid; 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>();
}
} }