14 #include "../internal/helpers.h"
20 template <
class t_Visitor,
typename t_VectorEntryType,
class t_Allocator>
23 std::vector<t_VectorEntryType, t_Allocator> &entry,
24 const typename t_Visitor::Parameters ¶m)
26 ARILES2_TRACE_FUNCTION;
27 entry.resize(visitor.startArray());
28 for (std::size_t i = 0; i < entry.size(); ++i)
30 visitor.visitArrayElement(entry[i], param);
42 template <
class t_Visitor,
typename t_VectorEntryType,
class t_Allocator>
45 const std::vector<t_VectorEntryType, t_Allocator> &entry,
46 const typename t_Visitor::Parameters ¶m)
48 ARILES2_TRACE_FUNCTION;
49 writer.startArray(entry.size(), param.compact_arrays_);
50 for (std::size_t i = 0; i < entry.size(); ++i)
52 writer.visitArrayElement(entry[i], param);
64 template <
class t_Visitor,
typename t_VectorEntryType,
class t_Allocator>
67 const std::vector<t_VectorEntryType, t_Allocator> &left,
68 const std::vector<t_VectorEntryType, t_Allocator> &right,
69 const typename t_Visitor::Parameters ¶m)
71 ARILES2_TRACE_FUNCTION;
73 visitor.equal_ &= (left.size() == right.size());
75 for (std::size_t i = 0; i < left.size() and
true == visitor.equal_; ++i)
88 template <
class t_Visitor,
typename t_VectorEntryType,
class t_Allocator>
91 std::vector<t_VectorEntryType, t_Allocator> &entry,
92 const typename t_Visitor::Parameters & )
94 ARILES2_TRACE_FUNCTION;
106 template <
class t_Visitor,
typename t_VectorEntryType,
class t_Allocator>
109 std::vector<t_VectorEntryType, t_Allocator> &entry,
110 const typename t_Visitor::Parameters ¶m)
112 ARILES2_TRACE_FUNCTION;
113 for (std::size_t i = 0; i < entry.size(); ++i)
128 typename t_VectorEntryTypeLeft,
129 class t_AllocatorLeft,
130 typename t_VectorEntryTypeRight,
131 class t_AllocatorRight>
134 std::vector<t_VectorEntryTypeLeft, t_AllocatorLeft> &left,
135 const std::vector<t_VectorEntryTypeRight, t_AllocatorRight> &right,
136 const typename t_Visitor::Parameters ¶m)
138 ARILES2_TRACE_FUNCTION;
141 left.reserve(right.size());
142 for (std::size_t i = 0; i < right.size(); ++i)
144 t_VectorEntryTypeLeft value;
146 left.push_back(value);
156 typename t_VectorEntryTypeLeft,
157 class t_AllocatorLeft,
158 typename t_VectorEntryTypeRight,
159 class t_AllocatorRight>
162 const std::vector<t_VectorEntryTypeLeft, t_AllocatorLeft> &left,
163 std::vector<t_VectorEntryTypeRight, t_AllocatorRight> &right,
164 const typename t_Visitor::Parameters ¶m)
166 ARILES2_TRACE_FUNCTION;
169 right.reserve(left.size());
170 for (std::size_t i = 0; i < left.size(); ++i)
172 t_VectorEntryTypeRight value;
174 right.push_back(value);