10#ifndef MSGPACK_V1_TYPE_ARRAY_REF_HPP
11#define MSGPACK_V1_TYPE_ARRAY_REF_HPP
39 return *
data == *
t.data;
43 return !(*
data == *
t.data);
48 return *
data < *
t.data;
53 return *
t.data < *
data;
58 return !(*
t.data < *
data);
63 return !(*
data < *
t.data);
67template <
typename T, std::
size_t N>
80 if (
N !=
t.size())
return false;
100 if (
N <
t.size())
return true;
103 template <
typename U>
106 return t.data <
data;
108 template <
typename U>
111 return !(
t.data <
data);
113 template <
typename U>
116 return !(
data <
t.data);
122typename msgpack::enable_if<
123 !msgpack::is_array<T const>::value,
132typename msgpack::enable_if<
133 !msgpack::is_array<T>::value,
140template <
typename T, std::
size_t N>
145template <
typename T, std::
size_t N>
160 if (
o.via.array.size > 0) {
163 typename T::iterator
it =
v.data->begin();
174template <
typename T, std::
size_t N>
180 if (
o.via.array.size > 0) {
199 v.data->resize(
o.via.bin.size);
200 if (
o.via.array.size > 0) {
203 typename std::vector<T>::iterator
it =
v.data->begin();
216 template <
typename Stream>
221 for (
typename T::const_iterator
it(
v.data->begin()),
it_end(
v.data->end());
229template <
typename T, std::
size_t N>
231 template <
typename Stream>
236 for (
T const*
it =
v.data;
237 it != &
v.data[
v.size()]; ++
it) {
248 o.type = msgpack::type::ARRAY;
249 if (
v.data->empty()) {
251 o.via.array.size = 0;
258 o.via.array.size = size;
259 typename T::const_iterator
it(
v.data->begin());
261#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
262#pragma GCC diagnostic push
263#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
267#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__)
268#pragma GCC diagnostic pop
277template <
typename T, std::
size_t N>
281 o.type = msgpack::type::ARRAY;
286 o.via.array.size = size;
287 T const*
it =
v.data;
The class template that supports continuous packing.
Definition pack.hpp:33
Definition object_fwd.hpp:231
msgpack::enable_if<!msgpack::is_array< Tconst >::value, array_ref< Tconst > >::type make_array_ref(const T &t)
Definition array_ref.hpp:126
Definition adaptor_base.hpp:15
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, msgpack::type::array_ref< T > &v) const
Definition array_ref.hpp:156
msgpack::object const & operator()(msgpack::object const &o, msgpack::type::array_ref< T[N]> &v) const
Definition array_ref.hpp:176
msgpack::object const & operator()(msgpack::object const &o, msgpack::type::array_ref< std::vector< T > > &v) const
Definition array_ref.hpp:196
Definition adaptor_base.hpp:27
void operator()(msgpack::object::with_zone &o, const msgpack::type::array_ref< T > &v) const
Definition array_ref.hpp:246
void operator()(msgpack::object::with_zone &o, const msgpack::type::array_ref< T[N]> &v) const
Definition array_ref.hpp:279
Definition adaptor_base.hpp:43
msgpack::packer< Stream > & operator()(msgpack::packer< Stream > &o, const msgpack::type::array_ref< T > &v) const
Definition array_ref.hpp:217
msgpack::packer< Stream > & operator()(msgpack::packer< Stream > &o, const msgpack::type::array_ref< T[N]> &v) const
Definition array_ref.hpp:232
Definition adaptor_base.hpp:32
Object class that corresponding to MessagePack format object.
Definition object_fwd.hpp:75
bool operator==(array_ref< U > const &t) const
Definition array_ref.hpp:79
array_ref(T(&t)[N])
Definition array_ref.hpp:70
T * data
Definition array_ref.hpp:72
bool operator!=(array_ref< U > const &t) const
Definition array_ref.hpp:89
array_ref()
Definition array_ref.hpp:69
std::size_t size() const
Definition array_ref.hpp:74
Definition array_ref.hpp:27
std::size_t size() const
Definition array_ref.hpp:33
array_ref()
Definition array_ref.hpp:28
T * data
Definition array_ref.hpp:31
bool operator>(array_ref< U > const &t) const
Definition array_ref.hpp:51
array_ref(T &t)
Definition array_ref.hpp:29
bool operator!=(array_ref< U > const &t) const
Definition array_ref.hpp:42
bool operator==(array_ref< U > const &t) const
Definition array_ref.hpp:38
bool operator>=(array_ref< U > const &t) const
Definition array_ref.hpp:61
bool operator<=(array_ref< U > const &t) const
Definition array_ref.hpp:56
#define MSGPACK_NULLPTR
Definition cpp_config_decl.hpp:85
#define MSGPACK_ZONE_ALIGNOF(type)
Definition cpp03_zone_decl.hpp:30
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition versioning.hpp:66