mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-03-19 13:02:13 +01:00
cpp: bool operator==(object& x, const T& y)
This commit is contained in:
parent
4e85ebbf98
commit
01b6673528
@ -128,6 +128,9 @@ private:
|
||||
bool operator==(const object x, const object y);
|
||||
bool operator!=(const object x, const object y);
|
||||
|
||||
template <typename T>
|
||||
bool operator==(const object x, const T& y);
|
||||
|
||||
std::ostream& operator<< (std::ostream& s, const object o);
|
||||
|
||||
|
||||
@ -207,6 +210,14 @@ inline packer<Stream>& operator<< (packer<Stream>& o, const T& v)
|
||||
inline bool operator!=(const object x, const object y)
|
||||
{ return !(x == y); }
|
||||
|
||||
template <typename T>
|
||||
inline bool operator==(const object x, const T& y)
|
||||
try {
|
||||
return x == object(y);
|
||||
} catch (msgpack::type_error&) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
inline object::implicit_type object::convert() const
|
||||
{
|
||||
|
@ -48,6 +48,13 @@ inline void operator<< (object::object_zone& o, const std::string& v)
|
||||
memcpy(ptr, v.data(), v.size());
|
||||
}
|
||||
|
||||
inline void operator<< (object& o, const std::string& v)
|
||||
{
|
||||
o.type = type::RAW;
|
||||
o.via.raw.ptr = v.data();
|
||||
o.via.raw.size = v.size();
|
||||
}
|
||||
|
||||
|
||||
} // namespace msgpack
|
||||
|
||||
|
@ -103,6 +103,9 @@ bool operator==(const object x, const object y)
|
||||
case type::NEGATIVE_INTEGER:
|
||||
return x.via.i64 == y.via.i64;
|
||||
|
||||
case type::DOUBLE:
|
||||
return x.via.dec == y.via.dec;
|
||||
|
||||
case type::RAW:
|
||||
return x.via.raw.size == y.via.raw.size &&
|
||||
memcmp(x.via.raw.ptr, y.via.raw.ptr, x.via.raw.size) == 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user