diff options
Diffstat (limited to 'cpp/msgpack/object.hpp')
| -rw-r--r-- | cpp/msgpack/object.hpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/cpp/msgpack/object.hpp b/cpp/msgpack/object.hpp index 3567ac8..37c1926 100644 --- a/cpp/msgpack/object.hpp +++ b/cpp/msgpack/object.hpp @@ -306,18 +306,18 @@ inline object::object(msgpack_object o) ::memcpy(this, &o, sizeof(o)); } -inline object::operator msgpack_object() +inline void operator<< (object& o, msgpack_object v) { // FIXME beter way? - msgpack_object obj; - ::memcpy(&obj, this, sizeof(obj)); - return obj; + ::memcpy(&o, &v, sizeof(v)); } -inline void operator<< (object& o, msgpack_object v) +inline object::operator msgpack_object() { // FIXME beter way? - ::memcpy(&o, &v, sizeof(v)); + msgpack_object obj; + ::memcpy(&obj, this, sizeof(obj)); + return obj; } @@ -391,6 +391,10 @@ packer<Stream>& operator<< (packer<Stream>& o, const object& v) } return o; + case type::DOUBLE: + o.pack_double(v.via.dec); + return o; + case type::RAW: o.pack_raw(v.via.raw.size); o.pack_raw_body(v.via.raw.ptr, v.via.raw.size); |
