12namespace zrythm::utils::views
21 template <std::ranges::viewable_range Range>
auto operator() (Range &&r)
const
23 return std::views::zip (
24 std::views::iota (std::size_t{ 0 }), std::forward<Range> (r));
31 template <std::ranges::viewable_range Range>
auto operator() (Range &&r)
const
33 return std::forward<Range> (r) | std::views::filter ([] (
const auto &ptr) {
34 return ptr !=
nullptr;
44template <
typename Derived>
46 : std::ranges::range_adaptor_closure<QObjectCastToAdaptor<Derived>>
48 template <std::ranges::viewable_range Range>
auto operator() (Range &&r)
const
50 return std::forward<Range> (r)
51 | std::views::transform ([] (
auto * ptr) -> Derived * {
52 return qobject_cast<Derived *> (ptr);
61template <
typename Derived>
63 : std::ranges::range_adaptor_closure<QObjectCastAndFilterAdaptor<Derived>>
65 template <std::ranges::viewable_range Range>
auto operator() (Range &&r)
const
76inline constexpr detail::FilterNullAdaptor filter_null{};
78template <
typename Derived>
79inline constexpr detail::QObjectCastToAdaptor<Derived> qobject_cast_to{};
81template <
typename Derived>
82inline constexpr detail::QObjectCastAndFilterAdaptor<Derived>
83 qobject_cast_and_filter{};
Enumerates a range with index pairs (index, element).
Filters out null pointers from a range of pointers.
qobject_cast + filter_null combined: returns only non-null cast results.
Transforms a range of QObject pointers via qobject_cast.