| 447 | const std::shared_ptr<value_base_impl>& value::get_impl() const { return this->x; } |
| 448 | |
| 449 | static auto object_range(const std::shared_ptr<value_base_impl>& x) |
| 450 | { |
| 451 | auto* a = if_array_impl(x); |
| 452 | assert(a != nullptr); |
| 453 | auto* lookup = x->if_object(); |
| 454 | assert(lookup != nullptr); |
| 455 | #if defined(__clang_major__) && __clang_major__ > 19 |
| 456 | std::vector<value> result; |
| 457 | std::transform(lookup->begin(), |
| 458 | lookup->end(), |
| 459 | std::back_inserter(result), |
| 460 | [=](const auto& p) -> decltype(auto) { return (*a)[p.second]; }); |
| 461 | return result; |
| 462 | #else |
| 463 | return views::transform(*lookup, |
| 464 | [=](const auto& p) -> decltype(auto) { return (*a)[p.second]; }); |
| 465 | #endif |
| 466 | } |
| 467 | |
| 468 | template <class F> |
| 469 | static void visit_for_compare(const value& x, F f) |
no test coverage detected