18 for(
const auto &ch : src)
77 out << std::string(indent*2,
' ');
89 for(arrayt::const_iterator a_it=
array.begin();
93 if(a_it!=
array.begin())
99 out << std::string((indent+1)*2,
' ');
104 a_it->output_rec(out, indent+1);
107 if(
array.back().is_object())
108 out <<
'\n' << std::string(indent*2,
' ');
135 for(objectt::const_iterator o_it =
object.begin(); o_it !=
object.end();
138 if(o_it !=
object.begin())
145 out << std::string((indent + 1) * 2,
' ');
148 o_it->second.output_rec(out, indent + 1);
163 other.
object.swap(
object);
185 const auto &left_array =
static_cast<const json_arrayt &
>(left);
186 const auto &right_array =
static_cast<const json_arrayt &
>(right);
187 return left_array.
size() == right_array.size() &&
189 left_array.begin(), left_array.end(), right_array.begin());
193 const auto &left_object =
static_cast<const json_objectt &
>(left);
194 const auto &right_object =
static_cast<const json_objectt &
>(right);
195 if(left_object.size() != left_object.size())
200 [&](
const std::pair<std::string, jsont> &pair) {
201 return right_object[pair.first] == pair.second;