10#ifndef MSGPACK_V1_TYPE_ARRAY_BYTE_HPP
11#define MSGPACK_V1_TYPE_ARRAY_BYTE_HPP
15#if MSGPACK_CPP_VERSION >= 201703
34template <std::
size_t N>
35struct convert<std::array<std::byte, N> > {
42#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
43#pragma GCC diagnostic push
44#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
47#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
48#pragma GCC diagnostic pop
56#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
57#pragma GCC diagnostic push
58#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
61#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
62#pragma GCC diagnostic pop
74template <std::
size_t N>
75struct pack<std::array<std::byte, N> > {
76 template <
typename Stream>
81 o.
pack_bin_body(
reinterpret_cast<char const*
>(&v.front()), size);
88template <std::
size_t N>
89struct object<std::array<std::byte, N> > {
94 o.
via.
bin.
ptr =
reinterpret_cast<char const*
>(&v.front());
100template <std::
size_t N>
101struct object_with_zone<std::array<std::byte, N> > {
109 std::memcpy(ptr, &v.front(), size);
The class template that supports continuous packing.
Definition pack.hpp:33
packer< Stream > & pack_bin(uint32_t l)
Packing bin header and length.
Definition pack.hpp:1290
packer< Stream > & pack_bin_body(const char *b, uint32_t l)
Packing bin body.
Definition pack.hpp:1309
Definition object_fwd.hpp:231
void * allocate_align(size_t size, size_t align=MSGPACK_ZONE_ALIGN)
Definition cpp03_zone.hpp:255
std::size_t size(T const &t)
Definition size_equal_only.hpp:24
@ STR
Definition object_fwd_decl.hpp:38
@ BIN
Definition object_fwd_decl.hpp:39
Definition adaptor_base.hpp:15
void pack(msgpack::packer< Stream > &o, const T &v)
Definition object.hpp:1185
uint32_t checked_get_container_size(T size)
Definition check_container_size.hpp:55
void convert(T &v, msgpack::object const &o)
Definition object.hpp:1178
msgpack::object const & operator()(msgpack::object const &o, T &v) const
Definition object.hpp:646
void operator()(msgpack::object::with_zone &o, T const &v) const
Definition object.hpp:662
void operator()(msgpack::object &o, T const &v) const
msgpack::packer< Stream > & operator()(msgpack::packer< Stream > &o, T const &v) const
Definition object.hpp:655
msgpack::zone & zone
Definition object.hpp:37
uint32_t size
Definition object_fwd.hpp:38
const char * ptr
Definition object_fwd.hpp:39
const char * ptr
Definition object_fwd.hpp:34
uint32_t size
Definition object_fwd.hpp:33
Object class that corresponding to MessagePack format object.
Definition object_fwd.hpp:75
union_type via
Definition object_fwd.hpp:93
msgpack::type::object_type type
Definition object_fwd.hpp:92
msgpack::object_str str
Definition object_fwd.hpp:87
msgpack::object_bin bin
Definition object_fwd.hpp:88
#define MSGPACK_ZONE_ALIGNOF(type)
Definition cpp03_zone_decl.hpp:30
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition versioning.hpp:66