14#include "../internal/helpers.h"
19 template <
class... t_Args>
22 return (entry.empty());
31 template <
class t_Visitor,
class... t_Args>
32 void apply_read(t_Visitor &visitor, std::deque<t_Args...> &entry,
const typename t_Visitor::Parameters ¶m)
35 const std::size_t size = visitor.startArray();
38 for (
typename std::deque<t_Args...>::reference value : entry)
40 visitor.visitArrayElement(value, param);
52 template <
class t_Visitor,
class... t_Args>
55 const std::deque<t_Args...> &entry,
56 const typename t_Visitor::Parameters ¶m)
59 writer.startArray(entry.size(), param.compact_arrays_);
60 for (
const typename std::deque<t_Args...>::value_type &value : entry)
62 writer.visitArrayElement(value, param);
74 template <
class t_Visitor,
class... t_Args>
77 const std::deque<t_Args...> &left,
78 const std::deque<t_Args...> &right,
79 const typename t_Visitor::Parameters ¶m)
83 visitor.equal_ &= (left.size() == right.size());
85 typename std::deque<t_Args...>::const_iterator left_it = left.begin();
86 typename std::deque<t_Args...>::const_iterator right_it = right.begin();
88 for (; left_it != left.end() && right_it != right.end(); ++left_it, ++right_it)
101 template <
class t_Visitor,
class... t_Args>
104 std::deque<t_Args...> &entry,
105 const typename t_Visitor::Parameters & )
119 template <
class t_Visitor,
class... t_Args>
121 const t_Visitor &visitor,
122 std::deque<t_Args...> &entry,
123 const typename t_Visitor::Parameters ¶m)
126 for (
typename std::deque<t_Args...>::reference value : entry)
139 template <
class t_Visitor,
class... t_LeftArgs,
class... t_RightArgs>
142 std::deque<t_LeftArgs...> &left,
143 const std::deque<t_RightArgs...> &right,
144 const typename t_Visitor::Parameters ¶m)
149 for (
const typename std::deque<t_RightArgs...>::value_type &right_value : right)
151 typename std::deque<t_LeftArgs...>::value_type left_value;
153 left.push_back(std::move(left_value));
161 template <
class t_Visitor,
class... t_LeftArgs,
class... t_RightArgs>
164 const std::deque<t_LeftArgs...> &left,
165 std::deque<t_RightArgs...> &right,
166 const typename t_Visitor::Parameters ¶m)
171 for (
const typename std::deque<t_LeftArgs...>::value_type &left_value : left)
173 typename std::deque<t_RightArgs...>::value_type right_value;
175 right.push_back(std::move(right_value));
void apply_compare(t_Visitor &visitor, const t_Left &left, const t_Right &right, const typename t_Visitor::Parameters ¶m)
void apply_copyfrom(t_Visitor &visitor, t_Left &left, const t_Right &right, const typename t_Visitor::Parameters ¶m)
void apply_copyto(t_Visitor &visitor, const t_Left &left, t_Right &right, const typename t_Visitor::Parameters ¶m)
void apply_defaults(const t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters ¶m, ARILES2_IS_BASE_ENABLER(ariles2::defaults::Base, t_Entry))
void apply_process(const t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters ¶m)
void apply_read(t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters ¶meters, ARILES2_IS_BASE_ENABLER(ariles2::read::Base, t_Entry))
void apply_write(t_Visitor &writer, const t_Entry &entry, const typename t_Visitor::Parameters ¶meters, ARILES2_IS_BASE_ENABLER(ariles2::write::Base, t_Entry))
bool isMissing(const ARILES2_POINTER_TYPE< t_Entry > &entry)
#define CPPUT_TRACE_FUNCTION