summaryrefslogtreecommitdiff
path: root/cpp/msgpack/object.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/msgpack/object.hpp')
-rw-r--r--cpp/msgpack/object.hpp16
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);