11 #ifndef MSGPACK_CPP11_SHARED_PTR_HPP 12 #define MSGPACK_CPP11_SHARED_PTR_HPP 29 struct as<std::shared_ptr<T>, typename std::enable_if<msgpack::has_as<T>::value>::type> {
31 if(o.
is_nil())
return nullptr;
32 return std::make_shared<T>(o.
as<T>());
41 v = std::make_shared<T>();
49 struct pack<std::shared_ptr<T>> {
50 template <
typename Stream>
82 #endif // MSGPACK_CPP11_SHARED_PTR_HPP #define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition: versioning.hpp:58
Definition: object_fwd.hpp:82
std::enable_if< msgpack::has_as< T >::value, T >::type as() const
Get value as T.
Definition: object.hpp:558
msgpack::object const & operator()(msgpack::object const &o, std::shared_ptr< T > &v) const
Definition: shared_ptr.hpp:38
Definition: adaptor_base.hpp:15
Definition: object_fwd.hpp:260
packer< Stream > & pack(const T &v)
Packing function template.
bool is_nil() const
Cheking nil.
Definition: object_fwd.hpp:129
Definition: object_fwd.hpp:29
Definition: adaptor_base.hpp:45
Definition: adaptor_base.hpp:34
msgpack::packer< Stream > & operator()(msgpack::packer< Stream > &o, const std::shared_ptr< T > &v) const
Definition: shared_ptr.hpp:51
void operator()(msgpack::object::with_zone &o, const std::shared_ptr< T > &v) const
Definition: shared_ptr.hpp:68
Object class that corresponding to MessagePack format object.
Definition: object_fwd.hpp:106
msgpack::type::object_type type
Definition: object_fwd.hpp:122
void operator()(msgpack::object &o, const std::shared_ptr< T > &v) const
Definition: shared_ptr.hpp:60
std::shared_ptr< T > operator()(msgpack::object const &o) const
Definition: shared_ptr.hpp:30
Definition: adaptor_base.hpp:40
The class template that supports continuous packing.
Definition: adaptor_base.hpp:22
packer< Stream > & pack_nil()
Packing nil.
Definition: pack.hpp:1138
Definition: adaptor_base.hpp:29