10#ifndef MSGPACK_V1_TYPE_VECTOR_CHAR_HPP
11#define MSGPACK_V1_TYPE_VECTOR_CHAR_HPP
29template <
typename Alloc>
30struct convert<std::vector<char, Alloc> > {
33 case msgpack::type::BIN:
34 v.resize(
o.via.bin.size);
35 if (
o.via.bin.size != 0) {
36#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
37#pragma GCC diagnostic push
38#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
40 std::memcpy(&
v.front(),
o.via.bin.ptr,
o.via.bin.size);
41#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
42#pragma GCC diagnostic pop
46 case msgpack::type::STR:
47 v.resize(
o.via.str.size);
48 if (
o.via.str.size != 0) {
49#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
50#pragma GCC diagnostic push
51#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
53 std::memcpy(&
v.front(),
o.via.str.ptr,
o.via.str.size);
54#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
55#pragma GCC diagnostic pop
67template <
typename Alloc>
68struct pack<std::vector<char, Alloc> > {
69 template <
typename Stream>
74 o.pack_bin_body(&
v.front(), size);
81template <
typename Alloc>
82struct object<std::vector<char, Alloc> > {
85 o.type = msgpack::type::BIN;
87 o.via.bin.ptr = &
v.front();
89 o.via.bin.size = size;
93template <
typename Alloc>
97 o.type = msgpack::type::BIN;
98 o.via.bin.size = size;
102 std::memcpy(ptr, &
v.front(), size);
The class template that supports continuous packing.
Definition pack.hpp:33
Definition object_fwd.hpp:231
Definition adaptor_base.hpp:15
uint32_t checked_get_container_size(T size)
Definition check_container_size.hpp:55
msgpack::object const & operator()(msgpack::object const &o, std::vector< char, Alloc > &v) const
Definition vector_char.hpp:31
Definition adaptor_base.hpp:27
void operator()(msgpack::object &o, const std::vector< char, Alloc > &v) const
Definition vector_char.hpp:83
void operator()(msgpack::object::with_zone &o, const std::vector< char, Alloc > &v) const
Definition vector_char.hpp:95
Definition adaptor_base.hpp:43
Definition adaptor_base.hpp:38
msgpack::packer< Stream > & operator()(msgpack::packer< Stream > &o, const std::vector< char, Alloc > &v) const
Definition vector_char.hpp:70
Definition adaptor_base.hpp:32
Object class that corresponding to MessagePack format object.
Definition object_fwd.hpp:75
#define MSGPACK_ZONE_ALIGNOF(type)
Definition cpp03_zone_decl.hpp:30
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition versioning.hpp:66