diff --git a/include/msgpack/object.hpp b/include/msgpack/object.hpp index f964a50b..3a56f262 100644 --- a/include/msgpack/object.hpp +++ b/include/msgpack/object.hpp @@ -386,15 +386,17 @@ inline msgpack::object::implicit_type object::convert() const } template -inline void object::convert(T& v) const +inline T& object::convert(T& v) const { msgpack::operator>>(*this, v); + return v; } template -inline void object::convert(T* v) const +inline T* object::convert(T* v) const { convert(*v); + return v; } template diff --git a/include/msgpack/object_fwd.hpp b/include/msgpack/object_fwd.hpp index 21483bc4..ffcc7db5 100644 --- a/include/msgpack/object_fwd.hpp +++ b/include/msgpack/object_fwd.hpp @@ -106,9 +106,9 @@ struct object { T as() const; template - void convert(T& v) const; + T& convert(T& v) const; template - void convert(T* v) const; + T* convert(T* v) const; object();