/src/immer/immer/detail/rbts/position.hpp
Line | Count | Source |
1 | | // |
2 | | // immer: immutable data structures for C++ |
3 | | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente |
4 | | // |
5 | | // This software is distributed under the Boost Software License, Version 1.0. |
6 | | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt |
7 | | // |
8 | | |
9 | | #pragma once |
10 | | |
11 | | #include <immer/config.hpp> |
12 | | #include <immer/detail/rbts/bits.hpp> |
13 | | |
14 | | #include <cassert> |
15 | | #include <type_traits> |
16 | | #include <utility> |
17 | | |
18 | | namespace immer { |
19 | | namespace detail { |
20 | | namespace rbts { |
21 | | |
22 | | template <typename Pos> |
23 | | constexpr auto bits = std::decay_t<Pos>::node_t::bits; |
24 | | |
25 | | template <typename Pos> |
26 | | constexpr auto bits_leaf = std::decay_t<Pos>::node_t::bits_leaf; |
27 | | |
28 | | template <typename Pos> |
29 | | using node_type = typename std::decay<Pos>::type::node_t; |
30 | | |
31 | | template <typename Pos> |
32 | | using edit_type = typename std::decay<Pos>::type::node_t::edit_t; |
33 | | |
34 | | template <typename NodeT> |
35 | | struct empty_regular_pos |
36 | | { |
37 | | using node_t = NodeT; |
38 | | node_t* node_; |
39 | | |
40 | 0 | count_t count() const { return 0; } |
41 | 1.47M | node_t* node() const { return node_; } |
42 | | shift_t shift() const { return 0; } |
43 | | size_t size() const { return 0; } |
44 | | |
45 | | template <typename Visitor, typename... Args> |
46 | | void each(Visitor, Args&&...) |
47 | 0 | { |
48 | 0 | } |
49 | | template <typename Visitor, typename... Args> |
50 | | bool each_pred(Visitor, Args&&...) |
51 | | { |
52 | | return true; |
53 | | } |
54 | | |
55 | | template <typename Visitor, typename... Args> |
56 | | decltype(auto) visit(Visitor v, Args&&... args) |
57 | 1.47M | { |
58 | 1.47M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
59 | 1.47M | } |
60 | | }; |
61 | | |
62 | | template <typename NodeT> |
63 | | empty_regular_pos<NodeT> make_empty_regular_pos(NodeT* node) |
64 | 1.47M | { |
65 | 1.47M | return {node}; |
66 | 1.47M | } |
67 | | |
68 | | template <typename NodeT> |
69 | | struct empty_leaf_pos |
70 | | { |
71 | | using node_t = NodeT; |
72 | | node_t* node_; |
73 | | |
74 | 7.26k | count_t count() const { return 0; } |
75 | 1.33M | node_t* node() const { return node_; } |
76 | 7.26k | shift_t shift() const { return 0; } |
77 | | size_t size() const { return 0; } |
78 | | |
79 | | template <typename Visitor, typename... Args> |
80 | | decltype(auto) visit(Visitor v, Args&&... args) |
81 | 1.33M | { |
82 | 1.33M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); |
83 | 1.33M | } |
84 | | }; |
85 | | |
86 | | template <typename NodeT> |
87 | | empty_leaf_pos<NodeT> make_empty_leaf_pos(NodeT* node) |
88 | 1.33M | { |
89 | 1.33M | assert(node); |
90 | 1.33M | return {node}; |
91 | 1.33M | } |
92 | | |
93 | | template <typename NodeT> |
94 | | struct leaf_pos |
95 | | { |
96 | | static constexpr auto B = NodeT::bits; |
97 | | static constexpr auto BL = NodeT::bits_leaf; |
98 | | |
99 | | using node_t = NodeT; |
100 | | node_t* node_; |
101 | | size_t size_; |
102 | | |
103 | 2.13M | count_t count() const { return index(size_ - 1) + 1; } |
104 | 1.48M | node_t* node() const { return node_; } |
105 | | size_t size() const { return size_; } |
106 | 999k | shift_t shift() const { return 0; } |
107 | 2.20M | count_t index(size_t idx) const { return idx & mask<BL>; } |
108 | | count_t subindex(size_t idx) const { return idx; } |
109 | | |
110 | | template <typename Visitor, typename... Args> |
111 | | decltype(auto) visit(Visitor v, Args&&... args) |
112 | 484k | { |
113 | 484k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); |
114 | 484k | } decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 112 | 397k | { | 113 | 397k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 397k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 112 | 37.5k | { | 113 | 37.5k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 37.5k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 112 | 2.61k | { | 113 | 2.61k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 2.61k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 112 | 743 | { | 113 | 743 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 743 | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 112 | 2.21k | { | 113 | 2.21k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 2.21k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 112 | 418 | { | 113 | 418 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 418 | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 112 | 1.45k | { | 113 | 1.45k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 1.45k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 112 | 2.44k | { | 113 | 2.44k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 2.44k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 112 | 775 | { | 113 | 775 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 775 | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 112 | 2.84k | { | 113 | 2.84k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 2.84k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 112 | 20.3k | { | 113 | 20.3k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 20.3k | } |
decltype(auto) immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 112 | 15.5k | { | 113 | 15.5k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 114 | 15.5k | } |
|
115 | | }; |
116 | | |
117 | | template <typename NodeT> |
118 | | leaf_pos<NodeT> make_leaf_pos(NodeT* node, size_t size) |
119 | 1.48M | { |
120 | 1.48M | assert(node); |
121 | 1.48M | assert(size > 0); |
122 | 1.48M | return {node, size}; |
123 | 1.48M | } |
124 | | |
125 | | template <typename NodeT> |
126 | | struct leaf_sub_pos |
127 | | { |
128 | | static constexpr auto B = NodeT::bits; |
129 | | static constexpr auto BL = NodeT::bits_leaf; |
130 | | |
131 | | using node_t = NodeT; |
132 | | node_t* node_; |
133 | | count_t count_; |
134 | | |
135 | 19.5M | count_t count() const { return count_; } |
136 | 62.5M | node_t* node() const { return node_; } |
137 | 7.33M | size_t size() const { return count_; } |
138 | 3.70M | shift_t shift() const { return 0; } |
139 | 1.20M | count_t index(size_t idx) const { return idx & mask<BL>; } |
140 | | count_t subindex(size_t idx) const { return idx; } |
141 | | |
142 | | template <typename Visitor, typename... Args> |
143 | | decltype(auto) visit(Visitor v, Args&&... args) |
144 | 69.7M | { |
145 | 69.7M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); |
146 | 69.7M | } decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 144 | 51.1M | { | 145 | 51.1M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 51.1M | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 144 | 58.5k | { | 145 | 58.5k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 58.5k | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 144 | 61.0k | { | 145 | 61.0k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 61.0k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 144 | 1.64k | { | 145 | 1.64k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 1.64k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 144 | 4.16k | { | 145 | 4.16k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 4.16k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 144 | 20.7k | { | 145 | 20.7k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 20.7k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 144 | 7.33M | { | 145 | 7.33M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 7.33M | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 7.33M | { | 145 | 7.33M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 7.33M | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 610 | { | 145 | 610 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 610 | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 1.82k | { | 145 | 1.82k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 1.82k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 4.83k | { | 145 | 4.83k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 4.83k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 4.83k | { | 145 | 4.83k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 4.83k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 12.8k | { | 145 | 12.8k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 12.8k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 307k | { | 145 | 307k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 307k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 678k | { | 145 | 678k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 678k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 144 | 678k | { | 145 | 678k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 678k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 144 | 18.9k | { | 145 | 18.9k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 18.9k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 876 | { | 145 | 876 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 876 | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 729 | { | 145 | 729 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 729 | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 1.80k | { | 145 | 1.80k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 1.80k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 4.54k | { | 145 | 4.54k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 4.54k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 947 | { | 145 | 947 | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 947 | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 4.19k | { | 145 | 4.19k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 4.19k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 144 | 46.4k | { | 145 | 46.4k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 46.4k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 144 | 25.9k | { | 145 | 25.9k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 25.9k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 144 | 26.6k | { | 145 | 26.6k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 26.6k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 144 | 5.35k | { | 145 | 5.35k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 5.35k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 144 | 7.74k | { | 145 | 7.74k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 7.74k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 144 | 980k | { | 145 | 980k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 980k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 144 | 931k | { | 145 | 931k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 931k | } |
decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 144 | 11.8k | { | 145 | 11.8k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 11.8k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&) Line | Count | Source | 144 | 6.52k | { | 145 | 6.52k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 146 | 6.52k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
147 | | }; |
148 | | |
149 | | template <typename NodeT> |
150 | | leaf_sub_pos<NodeT> make_leaf_sub_pos(NodeT* node, count_t count) |
151 | 69.7M | { |
152 | 69.7M | assert(node); |
153 | 69.7M | assert(count <= branches<NodeT::bits_leaf>); |
154 | 69.7M | return {node, count}; |
155 | 69.7M | } |
156 | | |
157 | | template <typename NodeT> |
158 | | struct leaf_descent_pos |
159 | | { |
160 | | static constexpr auto B = NodeT::bits; |
161 | | static constexpr auto BL = NodeT::bits_leaf; |
162 | | |
163 | | using node_t = NodeT; |
164 | | node_t* node_; |
165 | | |
166 | | node_t* node() const { return node_; } |
167 | | shift_t shift() const { return 0; } |
168 | | count_t index(size_t idx) const { return idx & mask<BL>; } |
169 | | |
170 | | template <typename... Args> |
171 | | decltype(auto) descend(Args&&...) |
172 | | { |
173 | | } |
174 | | |
175 | | template <typename Visitor, typename... Args> |
176 | | decltype(auto) visit(Visitor v, Args&&... args) |
177 | | { |
178 | | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); |
179 | | } |
180 | | }; |
181 | | |
182 | | template <typename NodeT> |
183 | | leaf_descent_pos<NodeT> make_leaf_descent_pos(NodeT* node) |
184 | | { |
185 | | assert(node); |
186 | | return {node}; |
187 | | } |
188 | | |
189 | | template <typename NodeT> |
190 | | struct full_leaf_pos |
191 | | { |
192 | | static constexpr auto B = NodeT::bits; |
193 | | static constexpr auto BL = NodeT::bits_leaf; |
194 | | |
195 | | using node_t = NodeT; |
196 | | node_t* node_; |
197 | | |
198 | 10.9M | count_t count() const { return branches<BL>; } |
199 | 7.41M | node_t* node() const { return node_; } |
200 | 4.73M | size_t size() const { return branches<BL>; } |
201 | 323k | shift_t shift() const { return 0; } |
202 | 330k | count_t index(size_t idx) const { return idx & mask<BL>; } |
203 | | count_t subindex(size_t idx) const { return idx; } |
204 | | |
205 | | template <typename Visitor, typename... Args> |
206 | | decltype(auto) visit(Visitor v, Args&&... args) |
207 | 12.1M | { |
208 | 12.1M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); |
209 | 12.1M | } decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 207 | 1.69M | { | 208 | 1.69M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 1.69M | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 207 | 14.5k | { | 208 | 14.5k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 14.5k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 207 | 5.87k | { | 208 | 5.87k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 5.87k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 207 | 1.71k | { | 208 | 1.71k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 1.71k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&&) Line | Count | Source | 207 | 9.86k | { | 208 | 9.86k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 9.86k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 207 | 4.73M | { | 208 | 4.73M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 4.73M | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 207 | 4.73M | { | 208 | 4.73M | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 4.73M | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 207 | 2.43k | { | 208 | 2.43k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 2.43k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 207 | 320k | { | 208 | 320k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 320k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 207 | 3.21k | { | 208 | 3.21k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 3.21k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 207 | 1.84k | { | 208 | 1.84k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 1.84k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 207 | 3.26k | { | 208 | 3.26k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 3.26k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 207 | 9.84k | { | 208 | 9.84k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 9.84k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 207 | 1.67k | { | 208 | 1.67k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 1.67k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 207 | 8.36k | { | 208 | 8.36k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 8.36k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 207 | 12.4k | { | 208 | 12.4k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 12.4k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 207 | 29.4k | { | 208 | 29.4k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 29.4k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 207 | 254k | { | 208 | 254k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 254k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 207 | 270k | { | 208 | 270k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 270k | } |
decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 207 | 11.8k | { | 208 | 11.8k | return Visitor::visit_leaf(*this, std::forward<Args>(args)...); | 209 | 11.8k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
210 | | }; |
211 | | |
212 | | template <typename NodeT> |
213 | | full_leaf_pos<NodeT> make_full_leaf_pos(NodeT* node) |
214 | 12.1M | { |
215 | 12.1M | assert(node); |
216 | 12.1M | return {node}; |
217 | 12.1M | } |
218 | | |
219 | | template <typename NodeT> |
220 | | struct regular_pos |
221 | | { |
222 | | static constexpr auto B = NodeT::bits; |
223 | | static constexpr auto BL = NodeT::bits_leaf; |
224 | | |
225 | | using node_t = NodeT; |
226 | | node_t* node_; |
227 | | shift_t shift_; |
228 | | size_t size_; |
229 | | |
230 | 3.09M | count_t count() const { return index(size_ - 1) + 1; } |
231 | 4.99M | node_t* node() const { return node_; } |
232 | 7.77M | size_t size() const { return size_; } |
233 | 4.65M | shift_t shift() const { return shift_; } |
234 | 6.95M | count_t index(size_t idx) const { return (idx >> shift_) & mask<B>; } |
235 | | count_t subindex(size_t idx) const { return idx >> shift_; } |
236 | | size_t this_size() const |
237 | | { |
238 | | return ((size_ - 1) & ~(~size_t{} << (shift_ + B))) + 1; |
239 | | } |
240 | | |
241 | | template <typename Visitor, typename... Args> |
242 | | void each(Visitor v, Args&&... args) |
243 | 866k | { |
244 | 866k | return each_regular(*this, v, args...); |
245 | 866k | } |
246 | | |
247 | | template <typename Visitor, typename... Args> |
248 | | bool each_pred(Visitor v, Args&&... args) |
249 | 3.89k | { |
250 | 3.89k | return each_pred_regular(*this, v, args...); |
251 | 3.89k | } |
252 | | |
253 | | template <typename Visitor, typename... Args> |
254 | | bool each_pred_zip(Visitor v, node_t* other, Args&&... args) |
255 | 2.73k | { |
256 | 2.73k | return each_pred_zip_regular(*this, v, other, args...); |
257 | 2.73k | } |
258 | | |
259 | | template <typename Visitor, typename... Args> |
260 | | bool each_pred_i(Visitor v, count_t i, count_t n, Args&&... args) |
261 | | { |
262 | | return each_pred_i_regular(*this, v, i, n, args...); |
263 | | } |
264 | | |
265 | | template <typename Visitor, typename... Args> |
266 | | bool each_pred_right(Visitor v, count_t start, Args&&... args) |
267 | | { |
268 | | return each_pred_right_regular(*this, v, start, args...); |
269 | | } |
270 | | |
271 | | template <typename Visitor, typename... Args> |
272 | | bool each_pred_left(Visitor v, count_t n, Args&&... args) |
273 | | { |
274 | | return each_pred_left_regular(*this, v, n, args...); |
275 | | } |
276 | | |
277 | | template <typename Visitor, typename... Args> |
278 | | void each_i(Visitor v, count_t i, count_t n, Args&&... args) |
279 | | { |
280 | | return each_i_regular(*this, v, i, n, args...); |
281 | | } |
282 | | |
283 | | template <typename Visitor, typename... Args> |
284 | | void each_right(Visitor v, count_t start, Args&&... args) |
285 | 2.50k | { |
286 | 2.50k | return each_right_regular(*this, v, start, args...); |
287 | 2.50k | } |
288 | | |
289 | | template <typename Visitor, typename... Args> |
290 | | void each_left(Visitor v, count_t n, Args&&... args) |
291 | | { |
292 | | return each_left_regular(*this, v, n, args...); |
293 | | } |
294 | | |
295 | | template <typename Visitor, typename... Args> |
296 | | decltype(auto) towards(Visitor v, size_t idx, Args&&... args) |
297 | 30.7k | { |
298 | 30.7k | return towards_oh_ch_regular( |
299 | 30.7k | *this, v, idx, index(idx), count(), args...); |
300 | 30.7k | } |
301 | | |
302 | | template <typename Visitor, typename... Args> |
303 | | decltype(auto) |
304 | | towards_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
305 | 9.49k | { |
306 | 9.49k | return towards_oh_ch_regular( |
307 | 9.49k | *this, v, idx, offset_hint, count(), args...); |
308 | 9.49k | } decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 305 | 2.69k | { | 306 | 2.69k | return towards_oh_ch_regular( | 307 | 2.69k | *this, v, idx, offset_hint, count(), args...); | 308 | 2.69k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 305 | 2.50k | { | 306 | 2.50k | return towards_oh_ch_regular( | 307 | 2.50k | *this, v, idx, offset_hint, count(), args...); | 308 | 2.50k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 305 | 4.29k | { | 306 | 4.29k | return towards_oh_ch_regular( | 307 | 4.29k | *this, v, idx, offset_hint, count(), args...); | 308 | 4.29k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
309 | | |
310 | | template <typename Visitor, typename... Args> |
311 | | decltype(auto) towards_oh_ch(Visitor v, |
312 | | size_t idx, |
313 | | count_t offset_hint, |
314 | | count_t count_hint, |
315 | | Args&&... args) |
316 | 8.68k | { |
317 | 8.68k | return towards_oh_ch_regular( |
318 | 8.68k | *this, v, idx, offset_hint, count(), args...); |
319 | 8.68k | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_ch<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 316 | 6.91k | { | 317 | 6.91k | return towards_oh_ch_regular( | 318 | 6.91k | *this, v, idx, offset_hint, count(), args...); | 319 | 6.91k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_ch<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 316 | 1.76k | { | 317 | 1.76k | return towards_oh_ch_regular( | 318 | 1.76k | *this, v, idx, offset_hint, count(), args...); | 319 | 1.76k | } |
|
320 | | |
321 | | template <typename Visitor, typename... Args> |
322 | | decltype(auto) |
323 | | towards_sub_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
324 | | { |
325 | | return towards_sub_oh_regular(*this, v, idx, offset_hint, args...); |
326 | | } |
327 | | |
328 | | template <typename Visitor, typename... Args> |
329 | | decltype(auto) last_oh(Visitor v, count_t offset_hint, Args&&... args) |
330 | 1.24M | { |
331 | 1.24M | return last_oh_regular(*this, v, offset_hint, args...); |
332 | 1.24M | } decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned int, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 330 | 517k | { | 331 | 517k | return last_oh_regular(*this, v, offset_hint, args...); | 332 | 517k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 330 | 727k | { | 331 | 727k | return last_oh_regular(*this, v, offset_hint, args...); | 332 | 727k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 330 | 3.02k | { | 331 | 3.02k | return last_oh_regular(*this, v, offset_hint, args...); | 332 | 3.02k | } |
|
333 | | |
334 | | template <typename Visitor, typename... Args> |
335 | | decltype(auto) visit(Visitor v, Args&&... args) |
336 | 2.85M | { |
337 | 2.85M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
338 | 2.85M | } decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 336 | 916k | { | 337 | 916k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 916k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 336 | 823k | { | 337 | 823k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 823k | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 336 | 6.91k | { | 337 | 6.91k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 6.91k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 336 | 2.69k | { | 337 | 2.69k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 2.69k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 336 | 1.05M | { | 337 | 1.05M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 1.05M | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 336 | 4.70k | { | 337 | 4.70k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 4.70k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 336 | 1.76k | { | 337 | 1.76k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 1.76k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 336 | 3.42k | { | 337 | 3.42k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 3.42k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_right_visitor, unsigned int>(immer::detail::rbts::dec_right_visitor, unsigned int&&) Line | Count | Source | 336 | 1.14k | { | 337 | 1.14k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 1.14k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 336 | 3.38k | { | 337 | 3.38k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 3.38k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 336 | 3.02k | { | 337 | 3.02k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 3.02k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 336 | 30.7k | { | 337 | 30.7k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 30.7k | } |
decltype(auto) immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 336 | 3.89k | { | 337 | 3.89k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 338 | 3.89k | } |
|
339 | | }; |
340 | | |
341 | | template <typename Pos, typename Visitor, typename... Args> |
342 | | void each_regular(Pos&& p, Visitor v, Args&&... args) |
343 | 1.30M | { |
344 | 1.30M | constexpr auto B = bits<Pos>; |
345 | 1.30M | constexpr auto BL = bits_leaf<Pos>; |
346 | 1.30M | auto n = p.node()->inner(); |
347 | 1.30M | auto last = p.count() - 1; |
348 | 1.30M | auto e = n + last; |
349 | 1.30M | if (p.shift() == BL) { |
350 | 1.40M | for (; n != e; ++n) { |
351 | 1.01M | IMMER_PREFETCH(n + 1); |
352 | 1.01M | make_full_leaf_pos(*n).visit(v, args...); |
353 | 1.01M | } |
354 | 393k | make_leaf_pos(*n, p.size()).visit(v, args...); |
355 | 907k | } else { |
356 | 907k | auto ss = p.shift() - B; |
357 | 3.66M | for (; n != e; ++n) |
358 | 2.76M | make_full_pos(*n, ss).visit(v, args...); |
359 | 907k | make_regular_pos(*n, ss, p.size()).visit(v, args...); |
360 | 907k | } |
361 | 1.30M | } void immer::detail::rbts::each_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor) Line | Count | Source | 343 | 434k | { | 344 | 434k | constexpr auto B = bits<Pos>; | 345 | 434k | constexpr auto BL = bits_leaf<Pos>; | 346 | 434k | auto n = p.node()->inner(); | 347 | 434k | auto last = p.count() - 1; | 348 | 434k | auto e = n + last; | 349 | 434k | if (p.shift() == BL) { | 350 | 229k | for (; n != e; ++n) { | 351 | 138k | IMMER_PREFETCH(n + 1); | 352 | 138k | make_full_leaf_pos(*n).visit(v, args...); | 353 | 138k | } | 354 | 91.4k | make_leaf_pos(*n, p.size()).visit(v, args...); | 355 | 342k | } else { | 356 | 342k | auto ss = p.shift() - B; | 357 | 1.27M | for (; n != e; ++n) | 358 | 934k | make_full_pos(*n, ss).visit(v, args...); | 359 | 342k | make_regular_pos(*n, ss, p.size()).visit(v, args...); | 360 | 342k | } | 361 | 434k | } |
void immer::detail::rbts::each_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor) Line | Count | Source | 343 | 866k | { | 344 | 866k | constexpr auto B = bits<Pos>; | 345 | 866k | constexpr auto BL = bits_leaf<Pos>; | 346 | 866k | auto n = p.node()->inner(); | 347 | 866k | auto last = p.count() - 1; | 348 | 866k | auto e = n + last; | 349 | 866k | if (p.shift() == BL) { | 350 | 1.17M | for (; n != e; ++n) { | 351 | 872k | IMMER_PREFETCH(n + 1); | 352 | 872k | make_full_leaf_pos(*n).visit(v, args...); | 353 | 872k | } | 354 | 302k | make_leaf_pos(*n, p.size()).visit(v, args...); | 355 | 564k | } else { | 356 | 564k | auto ss = p.shift() - B; | 357 | 2.38M | for (; n != e; ++n) | 358 | 1.82M | make_full_pos(*n, ss).visit(v, args...); | 359 | 564k | make_regular_pos(*n, ss, p.size()).visit(v, args...); | 360 | 564k | } | 361 | 866k | } |
|
362 | | |
363 | | template <typename Pos, typename Visitor, typename... Args> |
364 | | bool each_pred_regular(Pos&& p, Visitor v, Args&&... args) |
365 | 21.7k | { |
366 | 21.7k | constexpr auto B = bits<Pos>; |
367 | 21.7k | constexpr auto BL = bits_leaf<Pos>; |
368 | 21.7k | auto n = p.node()->inner(); |
369 | 21.7k | auto last = p.count() - 1; |
370 | 21.7k | auto e = n + last; |
371 | 21.7k | if (p.shift() == BL) { |
372 | 110k | for (; n != e; ++n) { |
373 | 94.5k | IMMER_PREFETCH(n + 1); |
374 | 94.5k | if (!make_full_leaf_pos(*n).visit(v, args...)) |
375 | 1.21k | return false; |
376 | 94.5k | } |
377 | 15.5k | return make_leaf_pos(*n, p.size()).visit(v, args...); |
378 | 16.7k | } else { |
379 | 4.97k | auto ss = p.shift() - B; |
380 | 14.2k | for (; n != e; ++n) |
381 | 10.4k | if (!make_full_pos(*n, ss).visit(v, args...)) |
382 | 1.08k | return false; |
383 | 3.89k | return make_regular_pos(*n, ss, p.size()).visit(v, args...); |
384 | 4.97k | } |
385 | 21.7k | } bool immer::detail::rbts::each_pred_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 365 | 17.8k | { | 366 | 17.8k | constexpr auto B = bits<Pos>; | 367 | 17.8k | constexpr auto BL = bits_leaf<Pos>; | 368 | 17.8k | auto n = p.node()->inner(); | 369 | 17.8k | auto last = p.count() - 1; | 370 | 17.8k | auto e = n + last; | 371 | 17.8k | if (p.shift() == BL) { | 372 | 100k | for (; n != e; ++n) { | 373 | 87.5k | IMMER_PREFETCH(n + 1); | 374 | 87.5k | if (!make_full_leaf_pos(*n).visit(v, args...)) | 375 | 965 | return false; | 376 | 87.5k | } | 377 | 13.1k | return make_leaf_pos(*n, p.size()).visit(v, args...); | 378 | 14.0k | } else { | 379 | 3.77k | auto ss = p.shift() - B; | 380 | 11.9k | for (; n != e; ++n) | 381 | 9.09k | if (!make_full_pos(*n, ss).visit(v, args...)) | 382 | 884 | return false; | 383 | 2.88k | return make_regular_pos(*n, ss, p.size()).visit(v, args...); | 384 | 3.77k | } | 385 | 17.8k | } |
bool immer::detail::rbts::each_pred_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 365 | 3.89k | { | 366 | 3.89k | constexpr auto B = bits<Pos>; | 367 | 3.89k | constexpr auto BL = bits_leaf<Pos>; | 368 | 3.89k | auto n = p.node()->inner(); | 369 | 3.89k | auto last = p.count() - 1; | 370 | 3.89k | auto e = n + last; | 371 | 3.89k | if (p.shift() == BL) { | 372 | 9.36k | for (; n != e; ++n) { | 373 | 6.92k | IMMER_PREFETCH(n + 1); | 374 | 6.92k | if (!make_full_leaf_pos(*n).visit(v, args...)) | 375 | 250 | return false; | 376 | 6.92k | } | 377 | 2.43k | return make_leaf_pos(*n, p.size()).visit(v, args...); | 378 | 2.68k | } else { | 379 | 1.20k | auto ss = p.shift() - B; | 380 | 2.31k | for (; n != e; ++n) | 381 | 1.31k | if (!make_full_pos(*n, ss).visit(v, args...)) | 382 | 200 | return false; | 383 | 1.00k | return make_regular_pos(*n, ss, p.size()).visit(v, args...); | 384 | 1.20k | } | 385 | 3.89k | } |
|
386 | | |
387 | | template <typename Pos, typename Visitor, typename... Args> |
388 | | bool each_pred_zip_regular(Pos&& p, |
389 | | Visitor v, |
390 | | node_type<Pos>* other, |
391 | | Args&&... args) |
392 | 8.18k | { |
393 | 8.18k | constexpr auto B = bits<Pos>; |
394 | 8.18k | constexpr auto BL = bits_leaf<Pos>; |
395 | | |
396 | 8.18k | auto n = p.node()->inner(); |
397 | 8.18k | auto n2 = other->inner(); |
398 | 8.18k | auto last = p.count() - 1; |
399 | 8.18k | auto e = n + last; |
400 | 8.18k | if (p.shift() == BL) { |
401 | 11.0k | for (; n != e; ++n, ++n2) { |
402 | 8.15k | IMMER_PREFETCH(n + 1); |
403 | 8.15k | IMMER_PREFETCH(n2 + 1); |
404 | 8.15k | if (!make_full_leaf_pos(*n).visit(v, *n2, args...)) |
405 | 1.10k | return false; |
406 | 8.15k | } |
407 | 2.84k | return make_leaf_pos(*n, p.size()).visit(v, *n2, args...); |
408 | 4.23k | } else { |
409 | 4.23k | auto ss = p.shift() - B; |
410 | 8.77k | for (; n != e; ++n, ++n2) |
411 | 5.75k | if (!make_full_pos(*n, ss).visit(v, *n2, args...)) |
412 | 1.21k | return false; |
413 | 3.02k | return make_regular_pos(*n, ss, p.size()).visit(v, *n2, args...); |
414 | 4.23k | } |
415 | 8.18k | } bool immer::detail::rbts::each_pred_zip_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::equals_visitor>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::equals_visitor, std::__1::decay<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>::type::node_t*) Line | Count | Source | 392 | 5.44k | { | 393 | 5.44k | constexpr auto B = bits<Pos>; | 394 | 5.44k | constexpr auto BL = bits_leaf<Pos>; | 395 | | | 396 | 5.44k | auto n = p.node()->inner(); | 397 | 5.44k | auto n2 = other->inner(); | 398 | 5.44k | auto last = p.count() - 1; | 399 | 5.44k | auto e = n + last; | 400 | 5.44k | if (p.shift() == BL) { | 401 | 6.50k | for (; n != e; ++n, ++n2) { | 402 | 5.29k | IMMER_PREFETCH(n + 1); | 403 | 5.29k | IMMER_PREFETCH(n2 + 1); | 404 | 5.29k | if (!make_full_leaf_pos(*n).visit(v, *n2, args...)) | 405 | 872 | return false; | 406 | 5.29k | } | 407 | 1.21k | return make_leaf_pos(*n, p.size()).visit(v, *n2, args...); | 408 | 3.36k | } else { | 409 | 3.36k | auto ss = p.shift() - B; | 410 | 6.58k | for (; n != e; ++n, ++n2) | 411 | 4.20k | if (!make_full_pos(*n, ss).visit(v, *n2, args...)) | 412 | 980 | return false; | 413 | 2.38k | return make_regular_pos(*n, ss, p.size()).visit(v, *n2, args...); | 414 | 3.36k | } | 415 | 5.44k | } |
bool immer::detail::rbts::each_pred_zip_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::equals_visitor>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::equals_visitor, std::__1::decay<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>::type::node_t*) Line | Count | Source | 392 | 2.73k | { | 393 | 2.73k | constexpr auto B = bits<Pos>; | 394 | 2.73k | constexpr auto BL = bits_leaf<Pos>; | 395 | | | 396 | 2.73k | auto n = p.node()->inner(); | 397 | 2.73k | auto n2 = other->inner(); | 398 | 2.73k | auto last = p.count() - 1; | 399 | 2.73k | auto e = n + last; | 400 | 2.73k | if (p.shift() == BL) { | 401 | 4.50k | for (; n != e; ++n, ++n2) { | 402 | 2.86k | IMMER_PREFETCH(n + 1); | 403 | 2.86k | IMMER_PREFETCH(n2 + 1); | 404 | 2.86k | if (!make_full_leaf_pos(*n).visit(v, *n2, args...)) | 405 | 228 | return false; | 406 | 2.86k | } | 407 | 1.63k | return make_leaf_pos(*n, p.size()).visit(v, *n2, args...); | 408 | 1.86k | } else { | 409 | 874 | auto ss = p.shift() - B; | 410 | 2.18k | for (; n != e; ++n, ++n2) | 411 | 1.54k | if (!make_full_pos(*n, ss).visit(v, *n2, args...)) | 412 | 232 | return false; | 413 | 642 | return make_regular_pos(*n, ss, p.size()).visit(v, *n2, args...); | 414 | 874 | } | 415 | 2.73k | } |
|
416 | | |
417 | | template <typename Pos, typename Visitor, typename... Args> |
418 | | bool each_pred_i_regular( |
419 | | Pos&& p, Visitor v, count_t f, count_t l, Args&&... args) |
420 | | { |
421 | | constexpr auto B = bits<Pos>; |
422 | | constexpr auto BL = bits_leaf<Pos>; |
423 | | |
424 | | if (p.shift() == BL) { |
425 | | if (l > f) { |
426 | | if (l < p.count()) { |
427 | | auto n = p.node()->inner() + f; |
428 | | auto e = p.node()->inner() + l; |
429 | | for (; n < e; ++n) { |
430 | | IMMER_PREFETCH(n + 1); |
431 | | if (!make_full_leaf_pos(*n).visit(v, args...)) |
432 | | return false; |
433 | | } |
434 | | } else { |
435 | | auto n = p.node()->inner() + f; |
436 | | auto e = p.node()->inner() + l - 1; |
437 | | for (; n < e; ++n) { |
438 | | IMMER_PREFETCH(n + 1); |
439 | | if (!make_full_leaf_pos(*n).visit(v, args...)) |
440 | | return false; |
441 | | } |
442 | | if (!make_leaf_pos(*n, p.size()).visit(v, args...)) |
443 | | return false; |
444 | | } |
445 | | } |
446 | | } else { |
447 | | if (l > f) { |
448 | | auto ss = p.shift() - B; |
449 | | if (l < p.count()) { |
450 | | auto n = p.node()->inner() + f; |
451 | | auto e = p.node()->inner() + l; |
452 | | for (; n < e; ++n) |
453 | | if (!make_full_pos(*n, ss).visit(v, args...)) |
454 | | return false; |
455 | | } else { |
456 | | auto n = p.node()->inner() + f; |
457 | | auto e = p.node()->inner() + l - 1; |
458 | | for (; n < e; ++n) |
459 | | if (!make_full_pos(*n, ss).visit(v, args...)) |
460 | | return false; |
461 | | if (!make_regular_pos(*n, ss, p.size()).visit(v, args...)) |
462 | | return false; |
463 | | } |
464 | | } |
465 | | } |
466 | | return true; |
467 | | } |
468 | | |
469 | | template <typename Pos, typename Visitor, typename... Args> |
470 | | bool each_pred_left_regular(Pos&& p, Visitor v, count_t last, Args&&... args) |
471 | | { |
472 | | constexpr auto B = bits<Pos>; |
473 | | constexpr auto BL = bits_leaf<Pos>; |
474 | | assert(last < p.count()); |
475 | | if (p.shift() == BL) { |
476 | | auto n = p.node()->inner(); |
477 | | auto e = n + last; |
478 | | for (; n != e; ++n) { |
479 | | IMMER_PREFETCH(n + 1); |
480 | | if (!make_full_leaf_pos(*n).visit(v, args...)) |
481 | | return false; |
482 | | } |
483 | | } else { |
484 | | auto n = p.node()->inner(); |
485 | | auto e = n + last; |
486 | | auto ss = p.shift() - B; |
487 | | for (; n != e; ++n) |
488 | | if (!make_full_pos(*n, ss).visit(v, args...)) |
489 | | return false; |
490 | | } |
491 | | return true; |
492 | | } |
493 | | |
494 | | template <typename Pos, typename Visitor, typename... Args> |
495 | | bool each_pred_right_regular(Pos&& p, Visitor v, count_t start, Args&&... args) |
496 | | { |
497 | | constexpr auto B = bits<Pos>; |
498 | | constexpr auto BL = bits_leaf<Pos>; |
499 | | |
500 | | if (p.shift() == BL) { |
501 | | auto n = p.node()->inner() + start; |
502 | | auto last = p.count() - 1; |
503 | | auto e = p.node()->inner() + last; |
504 | | if (n <= e) { |
505 | | for (; n != e; ++n) { |
506 | | IMMER_PREFETCH(n + 1); |
507 | | if (!make_full_leaf_pos(*n).visit(v, args...)) |
508 | | return false; |
509 | | } |
510 | | if (!make_leaf_pos(*n, p.size()).visit(v, args...)) |
511 | | return false; |
512 | | } |
513 | | } else { |
514 | | auto n = p.node()->inner() + start; |
515 | | auto last = p.count() - 1; |
516 | | auto e = p.node()->inner() + last; |
517 | | auto ss = p.shift() - B; |
518 | | if (n <= e) { |
519 | | for (; n != e; ++n) |
520 | | if (!make_full_pos(*n, ss).visit(v, args...)) |
521 | | return false; |
522 | | if (!make_regular_pos(*n, ss, p.size()).visit(v, args...)) |
523 | | return false; |
524 | | } |
525 | | } |
526 | | return true; |
527 | | } |
528 | | |
529 | | template <typename Pos, typename Visitor, typename... Args> |
530 | | void each_i_regular(Pos&& p, Visitor v, count_t f, count_t l, Args&&... args) |
531 | | { |
532 | | constexpr auto B = bits<Pos>; |
533 | | constexpr auto BL = bits_leaf<Pos>; |
534 | | |
535 | | if (p.shift() == BL) { |
536 | | if (l > f) { |
537 | | if (l < p.count()) { |
538 | | auto n = p.node()->inner() + f; |
539 | | auto e = p.node()->inner() + l; |
540 | | for (; n < e; ++n) { |
541 | | IMMER_PREFETCH(n + 1); |
542 | | make_full_leaf_pos(*n).visit(v, args...); |
543 | | } |
544 | | } else { |
545 | | auto n = p.node()->inner() + f; |
546 | | auto e = p.node()->inner() + l - 1; |
547 | | for (; n < e; ++n) { |
548 | | IMMER_PREFETCH(n + 1); |
549 | | make_full_leaf_pos(*n).visit(v, args...); |
550 | | } |
551 | | make_leaf_pos(*n, p.size()).visit(v, args...); |
552 | | } |
553 | | } |
554 | | } else { |
555 | | if (l > f) { |
556 | | auto ss = p.shift() - B; |
557 | | if (l < p.count()) { |
558 | | auto n = p.node()->inner() + f; |
559 | | auto e = p.node()->inner() + l; |
560 | | for (; n < e; ++n) |
561 | | make_full_pos(*n, ss).visit(v, args...); |
562 | | } else { |
563 | | auto n = p.node()->inner() + f; |
564 | | auto e = p.node()->inner() + l - 1; |
565 | | for (; n < e; ++n) |
566 | | make_full_pos(*n, ss).visit(v, args...); |
567 | | make_regular_pos(*n, ss, p.size()).visit(v, args...); |
568 | | } |
569 | | } |
570 | | } |
571 | | } |
572 | | |
573 | | template <typename Pos, typename Visitor, typename... Args> |
574 | | void each_left_regular(Pos&& p, Visitor v, count_t last, Args&&... args) |
575 | 2.95M | { |
576 | 2.95M | constexpr auto B = bits<Pos>; |
577 | 2.95M | constexpr auto BL = bits_leaf<Pos>; |
578 | 2.95M | assert(last < p.count()); |
579 | 2.95M | if (p.shift() == BL) { |
580 | 1.52M | auto n = p.node()->inner(); |
581 | 1.52M | auto e = n + last; |
582 | 7.22M | for (; n != e; ++n) { |
583 | 5.70M | IMMER_PREFETCH(n + 1); |
584 | 5.70M | make_full_leaf_pos(*n).visit(v, args...); |
585 | 5.70M | } |
586 | 1.52M | } else { |
587 | 1.43M | auto n = p.node()->inner(); |
588 | 1.43M | auto e = n + last; |
589 | 1.43M | auto ss = p.shift() - B; |
590 | 2.28M | for (; n != e; ++n) |
591 | 850k | make_full_pos(*n, ss).visit(v, args...); |
592 | 1.43M | } |
593 | 2.95M | } void immer::detail::rbts::each_left_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_rebalance_plan_fill_visitor, unsigned int, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 575 | 1.47M | { | 576 | 1.47M | constexpr auto B = bits<Pos>; | 577 | 1.47M | constexpr auto BL = bits_leaf<Pos>; | 578 | 1.47M | assert(last < p.count()); | 579 | 1.47M | if (p.shift() == BL) { | 580 | 760k | auto n = p.node()->inner(); | 581 | 760k | auto e = n + last; | 582 | 3.61M | for (; n != e; ++n) { | 583 | 2.85M | IMMER_PREFETCH(n + 1); | 584 | 2.85M | make_full_leaf_pos(*n).visit(v, args...); | 585 | 2.85M | } | 586 | 760k | } else { | 587 | 718k | auto n = p.node()->inner(); | 588 | 718k | auto e = n + last; | 589 | 718k | auto ss = p.shift() - B; | 590 | 1.14M | for (; n != e; ++n) | 591 | 425k | make_full_pos(*n, ss).visit(v, args...); | 592 | 718k | } | 593 | 1.47M | } |
void immer::detail::rbts::each_left_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_merger_visitor, unsigned int, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 575 | 1.47M | { | 576 | 1.47M | constexpr auto B = bits<Pos>; | 577 | 1.47M | constexpr auto BL = bits_leaf<Pos>; | 578 | 1.47M | assert(last < p.count()); | 579 | 1.47M | if (p.shift() == BL) { | 580 | 760k | auto n = p.node()->inner(); | 581 | 760k | auto e = n + last; | 582 | 3.61M | for (; n != e; ++n) { | 583 | 2.85M | IMMER_PREFETCH(n + 1); | 584 | 2.85M | make_full_leaf_pos(*n).visit(v, args...); | 585 | 2.85M | } | 586 | 760k | } else { | 587 | 718k | auto n = p.node()->inner(); | 588 | 718k | auto e = n + last; | 589 | 718k | auto ss = p.shift() - B; | 590 | 1.14M | for (; n != e; ++n) | 591 | 425k | make_full_pos(*n, ss).visit(v, args...); | 592 | 718k | } | 593 | 1.47M | } |
Unexecuted instantiation: void immer::detail::rbts::each_left_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor, unsigned int) Unexecuted instantiation: void immer::detail::rbts::each_left_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_merger_mut_visitor, unsigned int, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
594 | | |
595 | | template <typename Pos, typename Visitor, typename... Args> |
596 | | void each_right_regular(Pos&& p, Visitor v, count_t start, Args&&... args) |
597 | 14.6k | { |
598 | 14.6k | constexpr auto B = bits<Pos>; |
599 | 14.6k | constexpr auto BL = bits_leaf<Pos>; |
600 | | |
601 | 14.6k | if (p.shift() == BL) { |
602 | 4.94k | auto n = p.node()->inner() + start; |
603 | 4.94k | auto last = p.count() - 1; |
604 | 4.94k | auto e = p.node()->inner() + last; |
605 | 4.94k | if (n <= e) { |
606 | 7.10k | for (; n != e; ++n) { |
607 | 4.39k | IMMER_PREFETCH(n + 1); |
608 | 4.39k | make_full_leaf_pos(*n).visit(v, args...); |
609 | 4.39k | } |
610 | 2.71k | make_leaf_pos(*n, p.size()).visit(v, args...); |
611 | 2.71k | } |
612 | 9.69k | } else { |
613 | 9.69k | auto n = p.node()->inner() + start; |
614 | 9.69k | auto last = p.count() - 1; |
615 | 9.69k | auto e = p.node()->inner() + last; |
616 | 9.69k | auto ss = p.shift() - B; |
617 | 9.69k | if (n <= e) { |
618 | 8.30k | for (; n != e; ++n) |
619 | 2.03k | make_full_pos(*n, ss).visit(v, args...); |
620 | 6.26k | make_regular_pos(*n, ss, p.size()).visit(v, args...); |
621 | 6.26k | } |
622 | 9.69k | } |
623 | 14.6k | } void immer::detail::rbts::each_right_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor, unsigned int) Line | Count | Source | 597 | 2.50k | { | 598 | 2.50k | constexpr auto B = bits<Pos>; | 599 | 2.50k | constexpr auto BL = bits_leaf<Pos>; | 600 | | | 601 | 2.50k | if (p.shift() == BL) { | 602 | 1.36k | auto n = p.node()->inner() + start; | 603 | 1.36k | auto last = p.count() - 1; | 604 | 1.36k | auto e = p.node()->inner() + last; | 605 | 1.36k | if (n <= e) { | 606 | 3.21k | for (; n != e; ++n) { | 607 | 2.38k | IMMER_PREFETCH(n + 1); | 608 | 2.38k | make_full_leaf_pos(*n).visit(v, args...); | 609 | 2.38k | } | 610 | 831 | make_leaf_pos(*n, p.size()).visit(v, args...); | 611 | 831 | } | 612 | 1.36k | } else { | 613 | 1.14k | auto n = p.node()->inner() + start; | 614 | 1.14k | auto last = p.count() - 1; | 615 | 1.14k | auto e = p.node()->inner() + last; | 616 | 1.14k | auto ss = p.shift() - B; | 617 | 1.14k | if (n <= e) { | 618 | 1.84k | for (; n != e; ++n) | 619 | 1.03k | make_full_pos(*n, ss).visit(v, args...); | 620 | 807 | make_regular_pos(*n, ss, p.size()).visit(v, args...); | 621 | 807 | } | 622 | 1.14k | } | 623 | 2.50k | } |
void immer::detail::rbts::each_right_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::dec_visitor, unsigned int) Line | Count | Source | 597 | 12.1k | { | 598 | 12.1k | constexpr auto B = bits<Pos>; | 599 | 12.1k | constexpr auto BL = bits_leaf<Pos>; | 600 | | | 601 | 12.1k | if (p.shift() == BL) { | 602 | 3.57k | auto n = p.node()->inner() + start; | 603 | 3.57k | auto last = p.count() - 1; | 604 | 3.57k | auto e = p.node()->inner() + last; | 605 | 3.57k | if (n <= e) { | 606 | 3.89k | for (; n != e; ++n) { | 607 | 2.00k | IMMER_PREFETCH(n + 1); | 608 | 2.00k | make_full_leaf_pos(*n).visit(v, args...); | 609 | 2.00k | } | 610 | 1.88k | make_leaf_pos(*n, p.size()).visit(v, args...); | 611 | 1.88k | } | 612 | 8.54k | } else { | 613 | 8.54k | auto n = p.node()->inner() + start; | 614 | 8.54k | auto last = p.count() - 1; | 615 | 8.54k | auto e = p.node()->inner() + last; | 616 | 8.54k | auto ss = p.shift() - B; | 617 | 8.54k | if (n <= e) { | 618 | 6.46k | for (; n != e; ++n) | 619 | 1.00k | make_full_pos(*n, ss).visit(v, args...); | 620 | 5.46k | make_regular_pos(*n, ss, p.size()).visit(v, args...); | 621 | 5.46k | } | 622 | 8.54k | } | 623 | 12.1k | } |
|
624 | | |
625 | | template <typename Pos, typename Visitor, typename... Args> |
626 | | decltype(auto) towards_oh_ch_regular(Pos&& p, |
627 | | Visitor v, |
628 | | size_t idx, |
629 | | count_t offset_hint, |
630 | | count_t count_hint, |
631 | | Args&&... args) |
632 | 429k | { |
633 | 429k | constexpr auto B = bits<Pos>; |
634 | 429k | constexpr auto BL = bits_leaf<Pos>; |
635 | 429k | assert(offset_hint == p.index(idx)); |
636 | 429k | assert(count_hint == p.count()); |
637 | 429k | auto is_leaf = p.shift() == BL; |
638 | 429k | auto child = p.node()->inner()[offset_hint]; |
639 | 429k | auto is_full = offset_hint + 1 != count_hint; |
640 | 429k | return is_full |
641 | 429k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) |
642 | 312k | : make_full_pos(child, p.shift() - B) |
643 | 198k | .visit(v, idx, args...)) |
644 | 429k | : (is_leaf |
645 | 117k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) |
646 | 117k | : make_regular_pos(child, p.shift() - B, p.size()) |
647 | 48.8k | .visit(v, idx, args...)); |
648 | 429k | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 632 | 52.0k | { | 633 | 52.0k | constexpr auto B = bits<Pos>; | 634 | 52.0k | constexpr auto BL = bits_leaf<Pos>; | 635 | 52.0k | assert(offset_hint == p.index(idx)); | 636 | 52.0k | assert(count_hint == p.count()); | 637 | 52.0k | auto is_leaf = p.shift() == BL; | 638 | 52.0k | auto child = p.node()->inner()[offset_hint]; | 639 | 52.0k | auto is_full = offset_hint + 1 != count_hint; | 640 | 52.0k | return is_full | 641 | 52.0k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 9.51k | : make_full_pos(child, p.shift() - B) | 643 | 7.44k | .visit(v, idx, args...)) | 644 | 52.0k | : (is_leaf | 645 | 42.5k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 42.5k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 6.47k | .visit(v, idx, args...)); | 648 | 52.0k | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 632 | 6.91k | { | 633 | 6.91k | constexpr auto B = bits<Pos>; | 634 | 6.91k | constexpr auto BL = bits_leaf<Pos>; | 635 | 6.91k | assert(offset_hint == p.index(idx)); | 636 | 6.91k | assert(count_hint == p.count()); | 637 | 6.91k | auto is_leaf = p.shift() == BL; | 638 | 6.91k | auto child = p.node()->inner()[offset_hint]; | 639 | 6.91k | auto is_full = offset_hint + 1 != count_hint; | 640 | 6.91k | return is_full | 641 | 6.91k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 5.06k | : make_full_pos(child, p.shift() - B) | 643 | 1.18k | .visit(v, idx, args...)) | 644 | 6.91k | : (is_leaf | 645 | 1.85k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 1.85k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 436 | .visit(v, idx, args...)); | 648 | 6.91k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int, unsigned int) Line | Count | Source | 632 | 5.26k | { | 633 | 5.26k | constexpr auto B = bits<Pos>; | 634 | 5.26k | constexpr auto BL = bits_leaf<Pos>; | 635 | 5.26k | assert(offset_hint == p.index(idx)); | 636 | 5.26k | assert(count_hint == p.count()); | 637 | 5.26k | auto is_leaf = p.shift() == BL; | 638 | 5.26k | auto child = p.node()->inner()[offset_hint]; | 639 | 5.26k | auto is_full = offset_hint + 1 != count_hint; | 640 | 5.26k | return is_full | 641 | 5.26k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 1.61k | : make_full_pos(child, p.shift() - B) | 643 | 789 | .visit(v, idx, args...)) | 644 | 5.26k | : (is_leaf | 645 | 3.64k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 3.64k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 2.25k | .visit(v, idx, args...)); | 648 | 5.26k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int, unsigned int) Line | Count | Source | 632 | 2.69k | { | 633 | 2.69k | constexpr auto B = bits<Pos>; | 634 | 2.69k | constexpr auto BL = bits_leaf<Pos>; | 635 | 2.69k | assert(offset_hint == p.index(idx)); | 636 | 2.69k | assert(count_hint == p.count()); | 637 | 2.69k | auto is_leaf = p.shift() == BL; | 638 | 2.69k | auto child = p.node()->inner()[offset_hint]; | 639 | 2.69k | auto is_full = offset_hint + 1 != count_hint; | 640 | 2.69k | return is_full | 641 | 2.69k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 1.03k | : make_full_pos(child, p.shift() - B) | 643 | 403 | .visit(v, idx, args...)) | 644 | 2.69k | : (is_leaf | 645 | 1.65k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 1.65k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 436 | .visit(v, idx, args...)); | 648 | 2.69k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int, unsigned int) Line | Count | Source | 632 | 5.67k | { | 633 | 5.67k | constexpr auto B = bits<Pos>; | 634 | 5.67k | constexpr auto BL = bits_leaf<Pos>; | 635 | 5.67k | assert(offset_hint == p.index(idx)); | 636 | 5.67k | assert(count_hint == p.count()); | 637 | 5.67k | auto is_leaf = p.shift() == BL; | 638 | 5.67k | auto child = p.node()->inner()[offset_hint]; | 639 | 5.67k | auto is_full = offset_hint + 1 != count_hint; | 640 | 5.67k | return is_full | 641 | 5.67k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 4.93k | : make_full_pos(child, p.shift() - B) | 643 | 3.84k | .visit(v, idx, args...)) | 644 | 5.67k | : (is_leaf | 645 | 743 | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 743 | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 0 | .visit(v, idx, args...)); | 648 | 5.67k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int, unsigned int) decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 632 | 5.42k | { | 633 | 5.42k | constexpr auto B = bits<Pos>; | 634 | 5.42k | constexpr auto BL = bits_leaf<Pos>; | 635 | 5.42k | assert(offset_hint == p.index(idx)); | 636 | 5.42k | assert(count_hint == p.count()); | 637 | 5.42k | auto is_leaf = p.shift() == BL; | 638 | 5.42k | auto child = p.node()->inner()[offset_hint]; | 639 | 5.42k | auto is_full = offset_hint + 1 != count_hint; | 640 | 5.42k | return is_full | 641 | 5.42k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 2.54k | : make_full_pos(child, p.shift() - B) | 643 | 1.23k | .visit(v, idx, args...)) | 644 | 5.42k | : (is_leaf | 645 | 2.88k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 2.88k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 1.26k | .visit(v, idx, args...)); | 648 | 5.42k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 632 | 1.76k | { | 633 | 1.76k | constexpr auto B = bits<Pos>; | 634 | 1.76k | constexpr auto BL = bits_leaf<Pos>; | 635 | 1.76k | assert(offset_hint == p.index(idx)); | 636 | 1.76k | assert(count_hint == p.count()); | 637 | 1.76k | auto is_leaf = p.shift() == BL; | 638 | 1.76k | auto child = p.node()->inner()[offset_hint]; | 639 | 1.76k | auto is_full = offset_hint + 1 != count_hint; | 640 | 1.76k | return is_full | 641 | 1.76k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 668 | : make_full_pos(child, p.shift() - B) | 643 | 282 | .visit(v, idx, args...)) | 644 | 1.76k | : (is_leaf | 645 | 1.10k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 1.10k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 501 | .visit(v, idx, args...)); | 648 | 1.76k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 632 | 2.46k | { | 633 | 2.46k | constexpr auto B = bits<Pos>; | 634 | 2.46k | constexpr auto BL = bits_leaf<Pos>; | 635 | 2.46k | assert(offset_hint == p.index(idx)); | 636 | 2.46k | assert(count_hint == p.count()); | 637 | 2.46k | auto is_leaf = p.shift() == BL; | 638 | 2.46k | auto child = p.node()->inner()[offset_hint]; | 639 | 2.46k | auto is_full = offset_hint + 1 != count_hint; | 640 | 2.46k | return is_full | 641 | 2.46k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 2.04k | : make_full_pos(child, p.shift() - B) | 643 | 1.35k | .visit(v, idx, args...)) | 644 | 2.46k | : (is_leaf | 645 | 418 | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 418 | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 0 | .visit(v, idx, args...)); | 648 | 2.46k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 632 | 2.50k | { | 633 | 2.50k | constexpr auto B = bits<Pos>; | 634 | 2.50k | constexpr auto BL = bits_leaf<Pos>; | 635 | 2.50k | assert(offset_hint == p.index(idx)); | 636 | 2.50k | assert(count_hint == p.count()); | 637 | 2.50k | auto is_leaf = p.shift() == BL; | 638 | 2.50k | auto child = p.node()->inner()[offset_hint]; | 639 | 2.50k | auto is_full = offset_hint + 1 != count_hint; | 640 | 2.50k | return is_full | 641 | 2.50k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 1.63k | : make_full_pos(child, p.shift() - B) | 643 | 807 | .visit(v, idx, args...)) | 644 | 2.50k | : (is_leaf | 645 | 869 | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 869 | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 338 | .visit(v, idx, args...)); | 648 | 2.50k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 632 | 4.29k | { | 633 | 4.29k | constexpr auto B = bits<Pos>; | 634 | 4.29k | constexpr auto BL = bits_leaf<Pos>; | 635 | 4.29k | assert(offset_hint == p.index(idx)); | 636 | 4.29k | assert(count_hint == p.count()); | 637 | 4.29k | auto is_leaf = p.shift() == BL; | 638 | 4.29k | auto child = p.node()->inner()[offset_hint]; | 639 | 4.29k | auto is_full = offset_hint + 1 != count_hint; | 640 | 4.29k | return is_full | 641 | 4.29k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 1.89k | : make_full_pos(child, p.shift() - B) | 643 | 892 | .visit(v, idx, args...)) | 644 | 4.29k | : (is_leaf | 645 | 2.40k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 2.40k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 739 | .visit(v, idx, args...)); | 648 | 4.29k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 632 | 6.94k | { | 633 | 6.94k | constexpr auto B = bits<Pos>; | 634 | 6.94k | constexpr auto BL = bits_leaf<Pos>; | 635 | 6.94k | assert(offset_hint == p.index(idx)); | 636 | 6.94k | assert(count_hint == p.count()); | 637 | 6.94k | auto is_leaf = p.shift() == BL; | 638 | 6.94k | auto child = p.node()->inner()[offset_hint]; | 639 | 6.94k | auto is_full = offset_hint + 1 != count_hint; | 640 | 6.94k | return is_full | 641 | 6.94k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 2.94k | : make_full_pos(child, p.shift() - B) | 643 | 2.04k | .visit(v, idx, args...)) | 644 | 6.94k | : (is_leaf | 645 | 4.00k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 4.00k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 3.08k | .visit(v, idx, args...)); | 648 | 6.94k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 632 | 7.12k | { | 633 | 7.12k | constexpr auto B = bits<Pos>; | 634 | 7.12k | constexpr auto BL = bits_leaf<Pos>; | 635 | 7.12k | assert(offset_hint == p.index(idx)); | 636 | 7.12k | assert(count_hint == p.count()); | 637 | 7.12k | auto is_leaf = p.shift() == BL; | 638 | 7.12k | auto child = p.node()->inner()[offset_hint]; | 639 | 7.12k | auto is_full = offset_hint + 1 != count_hint; | 640 | 7.12k | return is_full | 641 | 7.12k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 3.70k | : make_full_pos(child, p.shift() - B) | 643 | 2.09k | .visit(v, idx, args...)) | 644 | 7.12k | : (is_leaf | 645 | 3.41k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 3.41k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 2.64k | .visit(v, idx, args...)); | 648 | 7.12k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 632 | 5.17k | { | 633 | 5.17k | constexpr auto B = bits<Pos>; | 634 | 5.17k | constexpr auto BL = bits_leaf<Pos>; | 635 | 5.17k | assert(offset_hint == p.index(idx)); | 636 | 5.17k | assert(count_hint == p.count()); | 637 | 5.17k | auto is_leaf = p.shift() == BL; | 638 | 5.17k | auto child = p.node()->inner()[offset_hint]; | 639 | 5.17k | auto is_full = offset_hint + 1 != count_hint; | 640 | 5.17k | return is_full | 641 | 5.17k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 4.40k | : make_full_pos(child, p.shift() - B) | 643 | 3.41k | .visit(v, idx, args...)) | 644 | 5.17k | : (is_leaf | 645 | 775 | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 775 | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 0 | .visit(v, idx, args...)); | 648 | 5.17k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::region_for_visitor<int>>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::region_for_visitor<int>, unsigned long, unsigned int, unsigned int) Line | Count | Source | 632 | 290k | { | 633 | 290k | constexpr auto B = bits<Pos>; | 634 | 290k | constexpr auto BL = bits_leaf<Pos>; | 635 | 290k | assert(offset_hint == p.index(idx)); | 636 | 290k | assert(count_hint == p.count()); | 637 | 290k | auto is_leaf = p.shift() == BL; | 638 | 290k | auto child = p.node()->inner()[offset_hint]; | 639 | 290k | auto is_full = offset_hint + 1 != count_hint; | 640 | 290k | return is_full | 641 | 290k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 246k | : make_full_pos(child, p.shift() - B) | 643 | 157k | .visit(v, idx, args...)) | 644 | 290k | : (is_leaf | 645 | 44.0k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 44.0k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 27.8k | .visit(v, idx, args...)); | 648 | 290k | } |
decltype(auto) immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::region_for_visitor<int>>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::region_for_visitor<int>, unsigned long, unsigned int, unsigned int) Line | Count | Source | 632 | 30.7k | { | 633 | 30.7k | constexpr auto B = bits<Pos>; | 634 | 30.7k | constexpr auto BL = bits_leaf<Pos>; | 635 | 30.7k | assert(offset_hint == p.index(idx)); | 636 | 30.7k | assert(count_hint == p.count()); | 637 | 30.7k | auto is_leaf = p.shift() == BL; | 638 | 30.7k | auto child = p.node()->inner()[offset_hint]; | 639 | 30.7k | auto is_full = offset_hint + 1 != count_hint; | 640 | 30.7k | return is_full | 641 | 30.7k | ? (is_leaf ? make_full_leaf_pos(child).visit(v, idx, args...) | 642 | 23.6k | : make_full_pos(child, p.shift() - B) | 643 | 14.5k | .visit(v, idx, args...)) | 644 | 30.7k | : (is_leaf | 645 | 7.06k | ? make_leaf_pos(child, p.size()).visit(v, idx, args...) | 646 | 7.06k | : make_regular_pos(child, p.shift() - B, p.size()) | 647 | 2.82k | .visit(v, idx, args...)); | 648 | 30.7k | } |
|
649 | | |
650 | | template <typename Pos, typename Visitor, typename... Args> |
651 | | decltype(auto) towards_sub_oh_regular( |
652 | | Pos&& p, Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
653 | 20.7k | { |
654 | 20.7k | constexpr auto B = bits<Pos>; |
655 | 20.7k | constexpr auto BL = bits_leaf<Pos>; |
656 | 20.7k | assert(offset_hint == p.index(idx)); |
657 | 20.7k | auto is_leaf = p.shift() == BL; |
658 | 20.7k | auto child = p.node()->inner()[offset_hint]; |
659 | 20.7k | auto lsize = offset_hint << p.shift(); |
660 | 20.7k | auto size = p.this_size(); |
661 | 20.7k | auto is_full = (size - lsize) >= (size_t{1} << p.shift()); |
662 | 20.7k | return is_full |
663 | 20.7k | ? (is_leaf |
664 | 18.2k | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) |
665 | 18.2k | : make_full_pos(child, p.shift() - B) |
666 | 7.62k | .visit(v, idx - lsize, args...)) |
667 | 20.7k | : (is_leaf |
668 | 2.55k | ? make_leaf_sub_pos(child, size - lsize) |
669 | 0 | .visit(v, idx - lsize, args...) |
670 | 2.55k | : make_regular_sub_pos(child, p.shift() - B, size - lsize) |
671 | 2.55k | .visit(v, idx - lsize, args...)); |
672 | 20.7k | } decltype(auto) immer::detail::rbts::towards_sub_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 653 | 9.11k | { | 654 | 9.11k | constexpr auto B = bits<Pos>; | 655 | 9.11k | constexpr auto BL = bits_leaf<Pos>; | 656 | 9.11k | assert(offset_hint == p.index(idx)); | 657 | 9.11k | auto is_leaf = p.shift() == BL; | 658 | 9.11k | auto child = p.node()->inner()[offset_hint]; | 659 | 9.11k | auto lsize = offset_hint << p.shift(); | 660 | 9.11k | auto size = p.this_size(); | 661 | 9.11k | auto is_full = (size - lsize) >= (size_t{1} << p.shift()); | 662 | 9.11k | return is_full | 663 | 9.11k | ? (is_leaf | 664 | 9.11k | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) | 665 | 9.11k | : make_full_pos(child, p.shift() - B) | 666 | 4.54k | .visit(v, idx - lsize, args...)) | 667 | 9.11k | : (is_leaf | 668 | 0 | ? make_leaf_sub_pos(child, size - lsize) | 669 | 0 | .visit(v, idx - lsize, args...) | 670 | 0 | : make_regular_sub_pos(child, p.shift() - B, size - lsize) | 671 | 0 | .visit(v, idx - lsize, args...)); | 672 | 9.11k | } |
decltype(auto) immer::detail::rbts::towards_sub_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Line | Count | Source | 653 | 2.32k | { | 654 | 2.32k | constexpr auto B = bits<Pos>; | 655 | 2.32k | constexpr auto BL = bits_leaf<Pos>; | 656 | 2.32k | assert(offset_hint == p.index(idx)); | 657 | 2.32k | auto is_leaf = p.shift() == BL; | 658 | 2.32k | auto child = p.node()->inner()[offset_hint]; | 659 | 2.32k | auto lsize = offset_hint << p.shift(); | 660 | 2.32k | auto size = p.this_size(); | 661 | 2.32k | auto is_full = (size - lsize) >= (size_t{1} << p.shift()); | 662 | 2.32k | return is_full | 663 | 2.32k | ? (is_leaf | 664 | 745 | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) | 665 | 745 | : make_full_pos(child, p.shift() - B) | 666 | 745 | .visit(v, idx - lsize, args...)) | 667 | 2.32k | : (is_leaf | 668 | 1.58k | ? make_leaf_sub_pos(child, size - lsize) | 669 | 0 | .visit(v, idx - lsize, args...) | 670 | 1.58k | : make_regular_sub_pos(child, p.shift() - B, size - lsize) | 671 | 1.58k | .visit(v, idx - lsize, args...)); | 672 | 2.32k | } |
decltype(auto) immer::detail::rbts::towards_sub_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 653 | 1.61k | { | 654 | 1.61k | constexpr auto B = bits<Pos>; | 655 | 1.61k | constexpr auto BL = bits_leaf<Pos>; | 656 | 1.61k | assert(offset_hint == p.index(idx)); | 657 | 1.61k | auto is_leaf = p.shift() == BL; | 658 | 1.61k | auto child = p.node()->inner()[offset_hint]; | 659 | 1.61k | auto lsize = offset_hint << p.shift(); | 660 | 1.61k | auto size = p.this_size(); | 661 | 1.61k | auto is_full = (size - lsize) >= (size_t{1} << p.shift()); | 662 | 1.61k | return is_full | 663 | 1.61k | ? (is_leaf | 664 | 636 | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) | 665 | 636 | : make_full_pos(child, p.shift() - B) | 666 | 636 | .visit(v, idx - lsize, args...)) | 667 | 1.61k | : (is_leaf | 668 | 974 | ? make_leaf_sub_pos(child, size - lsize) | 669 | 0 | .visit(v, idx - lsize, args...) | 670 | 974 | : make_regular_sub_pos(child, p.shift() - B, size - lsize) | 671 | 974 | .visit(v, idx - lsize, args...)); | 672 | 1.61k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::towards_sub_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::towards_sub_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 653 | 7.72k | { | 654 | 7.72k | constexpr auto B = bits<Pos>; | 655 | 7.72k | constexpr auto BL = bits_leaf<Pos>; | 656 | 7.72k | assert(offset_hint == p.index(idx)); | 657 | 7.72k | auto is_leaf = p.shift() == BL; | 658 | 7.72k | auto child = p.node()->inner()[offset_hint]; | 659 | 7.72k | auto lsize = offset_hint << p.shift(); | 660 | 7.72k | auto size = p.this_size(); | 661 | 7.72k | auto is_full = (size - lsize) >= (size_t{1} << p.shift()); | 662 | 7.72k | return is_full | 663 | 7.72k | ? (is_leaf | 664 | 7.72k | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) | 665 | 7.72k | : make_full_pos(child, p.shift() - B) | 666 | 1.70k | .visit(v, idx - lsize, args...)) | 667 | 7.72k | : (is_leaf | 668 | 0 | ? make_leaf_sub_pos(child, size - lsize) | 669 | 0 | .visit(v, idx - lsize, args...) | 670 | 0 | : make_regular_sub_pos(child, p.shift() - B, size - lsize) | 671 | 0 | .visit(v, idx - lsize, args...)); | 672 | 7.72k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::towards_sub_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
673 | | |
674 | | template <typename Pos, typename Visitor, typename... Args> |
675 | | decltype(auto) |
676 | | last_oh_regular(Pos&& p, Visitor v, count_t offset_hint, Args&&... args) |
677 | 1.87M | { |
678 | 1.87M | assert(offset_hint == p.count() - 1); |
679 | 1.87M | constexpr auto B = bits<Pos>; |
680 | 1.87M | constexpr auto BL = bits_leaf<Pos>; |
681 | 1.87M | auto child = p.node()->inner()[offset_hint]; |
682 | 1.87M | auto is_leaf = p.shift() == BL; |
683 | 1.87M | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) |
684 | 1.87M | : make_regular_pos(child, p.shift() - B, p.size()) |
685 | 1.87M | .visit(v, args...); |
686 | 1.87M | } decltype(auto) immer::detail::rbts::last_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned int, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 677 | 306k | { | 678 | 306k | assert(offset_hint == p.count() - 1); | 679 | 306k | constexpr auto B = bits<Pos>; | 680 | 306k | constexpr auto BL = bits_leaf<Pos>; | 681 | 306k | auto child = p.node()->inner()[offset_hint]; | 682 | 306k | auto is_leaf = p.shift() == BL; | 683 | 306k | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) | 684 | 306k | : make_regular_pos(child, p.shift() - B, p.size()) | 685 | 306k | .visit(v, args...); | 686 | 306k | } |
decltype(auto) immer::detail::rbts::last_oh_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned int, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 677 | 517k | { | 678 | 517k | assert(offset_hint == p.count() - 1); | 679 | 517k | constexpr auto B = bits<Pos>; | 680 | 517k | constexpr auto BL = bits_leaf<Pos>; | 681 | 517k | auto child = p.node()->inner()[offset_hint]; | 682 | 517k | auto is_leaf = p.shift() == BL; | 683 | 517k | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) | 684 | 517k | : make_regular_pos(child, p.shift() - B, p.size()) | 685 | 517k | .visit(v, args...); | 686 | 517k | } |
decltype(auto) immer::detail::rbts::last_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 677 | 323k | { | 678 | 323k | assert(offset_hint == p.count() - 1); | 679 | 323k | constexpr auto B = bits<Pos>; | 680 | 323k | constexpr auto BL = bits_leaf<Pos>; | 681 | 323k | auto child = p.node()->inner()[offset_hint]; | 682 | 323k | auto is_leaf = p.shift() == BL; | 683 | 323k | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) | 684 | 323k | : make_regular_pos(child, p.shift() - B, p.size()) | 685 | 323k | .visit(v, args...); | 686 | 323k | } |
decltype(auto) immer::detail::rbts::last_oh_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 677 | 727k | { | 678 | 727k | assert(offset_hint == p.count() - 1); | 679 | 727k | constexpr auto B = bits<Pos>; | 680 | 727k | constexpr auto BL = bits_leaf<Pos>; | 681 | 727k | auto child = p.node()->inner()[offset_hint]; | 682 | 727k | auto is_leaf = p.shift() == BL; | 683 | 727k | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) | 684 | 727k | : make_regular_pos(child, p.shift() - B, p.size()) | 685 | 727k | .visit(v, args...); | 686 | 727k | } |
decltype(auto) immer::detail::rbts::last_oh_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 677 | 3.02k | { | 678 | 3.02k | assert(offset_hint == p.count() - 1); | 679 | 3.02k | constexpr auto B = bits<Pos>; | 680 | 3.02k | constexpr auto BL = bits_leaf<Pos>; | 681 | 3.02k | auto child = p.node()->inner()[offset_hint]; | 682 | 3.02k | auto is_leaf = p.shift() == BL; | 683 | 3.02k | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) | 684 | 3.02k | : make_regular_pos(child, p.shift() - B, p.size()) | 685 | 3.02k | .visit(v, args...); | 686 | 3.02k | } |
decltype(auto) immer::detail::rbts::last_oh_regular<immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 677 | 1.67k | { | 678 | 1.67k | assert(offset_hint == p.count() - 1); | 679 | 1.67k | constexpr auto B = bits<Pos>; | 680 | 1.67k | constexpr auto BL = bits_leaf<Pos>; | 681 | 1.67k | auto child = p.node()->inner()[offset_hint]; | 682 | 1.67k | auto is_leaf = p.shift() == BL; | 683 | 1.67k | return is_leaf ? make_leaf_pos(child, p.size()).visit(v, args...) | 684 | 1.67k | : make_regular_pos(child, p.shift() - B, p.size()) | 685 | 1.67k | .visit(v, args...); | 686 | 1.67k | } |
|
687 | | |
688 | | template <typename NodeT> |
689 | | regular_pos<NodeT> make_regular_pos(NodeT* node, shift_t shift, size_t size) |
690 | 2.84M | { |
691 | 2.84M | assert(node); |
692 | 2.84M | assert(shift >= NodeT::bits_leaf); |
693 | 2.84M | assert(size > 0); |
694 | 2.84M | return {node, shift, size}; |
695 | 2.84M | } |
696 | | |
697 | | struct null_sub_pos |
698 | | { |
699 | 0 | auto node() const { return nullptr; } |
700 | | |
701 | | template <typename Visitor, typename... Args> |
702 | | void each_sub(Visitor, Args&&...) |
703 | | { |
704 | | } |
705 | | template <typename Visitor, typename... Args> |
706 | | void each_right_sub(Visitor, Args&&...) |
707 | 5.96M | { |
708 | 5.96M | } void immer::detail::rbts::null_sub_pos::each_right_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 707 | 2.98M | { | 708 | 2.98M | } |
void immer::detail::rbts::null_sub_pos::each_right_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 707 | 2.98M | { | 708 | 2.98M | } |
Unexecuted instantiation: void immer::detail::rbts::null_sub_pos::each_right_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
709 | | template <typename Visitor, typename... Args> |
710 | | void each_left_sub(Visitor, Args&&...) |
711 | 118k | { |
712 | 118k | } void immer::detail::rbts::null_sub_pos::each_left_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 711 | 59.4k | { | 712 | 59.4k | } |
void immer::detail::rbts::null_sub_pos::each_left_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 711 | 59.4k | { | 712 | 59.4k | } |
Unexecuted instantiation: void immer::detail::rbts::null_sub_pos::each_left_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
713 | | template <typename Visitor, typename... Args> |
714 | | void visit(Visitor, Args&&...) |
715 | | { |
716 | | } |
717 | | }; |
718 | | |
719 | | template <typename NodeT> |
720 | | struct singleton_regular_sub_pos |
721 | | { |
722 | | // this is a fake regular pos made out of a single child... useful |
723 | | // to treat a single leaf node as a whole tree |
724 | | |
725 | | static constexpr auto B = NodeT::bits; |
726 | | static constexpr auto BL = NodeT::bits_leaf; |
727 | | |
728 | | using node_t = NodeT; |
729 | | node_t* leaf_; |
730 | | count_t count_; |
731 | | |
732 | 0 | count_t count() const { return 1; } |
733 | 0 | node_t* node() const { return nullptr; } |
734 | | size_t size() const { return count_; } |
735 | 25.1k | shift_t shift() const { return BL; } |
736 | | count_t index(size_t idx) const { return 0; } |
737 | | count_t subindex(size_t idx) const { return 0; } |
738 | | size_t size_before(count_t offset) const { return 0; } |
739 | | size_t this_size() const { return count_; } |
740 | | size_t size(count_t offset) { return count_; } |
741 | | |
742 | | template <typename Visitor, typename... Args> |
743 | | void each_left_sub(Visitor v, Args&&... args) |
744 | 14.5k | { |
745 | 14.5k | } void immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 744 | 7.26k | { | 745 | 7.26k | } |
void immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 744 | 7.26k | { | 745 | 7.26k | } |
Unexecuted instantiation: void immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
746 | | template <typename Visitor, typename... Args> |
747 | | void each(Visitor v, Args&&... args) |
748 | | { |
749 | | } |
750 | | |
751 | | template <typename Visitor, typename... Args> |
752 | | decltype(auto) last_sub(Visitor v, Args&&... args) |
753 | 7.26k | { |
754 | 7.26k | return make_leaf_sub_pos(leaf_, count_).visit(v, args...); |
755 | 7.26k | } Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 753 | 610 | { | 754 | 610 | return make_leaf_sub_pos(leaf_, count_).visit(v, args...); | 755 | 610 | } |
decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 753 | 1.82k | { | 754 | 1.82k | return make_leaf_sub_pos(leaf_, count_).visit(v, args...); | 755 | 1.82k | } |
decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 753 | 4.83k | { | 754 | 4.83k | return make_leaf_sub_pos(leaf_, count_).visit(v, args...); | 755 | 4.83k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) |
756 | | |
757 | | template <typename Visitor, typename... Args> |
758 | | decltype(auto) visit(Visitor v, Args&&... args) |
759 | 7.26k | { |
760 | 7.26k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
761 | 7.26k | } decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Line | Count | Source | 759 | 7.26k | { | 760 | 7.26k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 761 | 7.26k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) |
762 | | }; |
763 | | |
764 | | template <typename NodeT> |
765 | | auto make_singleton_regular_sub_pos(NodeT* leaf, count_t count) |
766 | 7.26k | { |
767 | 7.26k | assert(leaf); |
768 | 7.26k | IMMER_ASSERT_TAGGED(leaf->kind() == NodeT::kind_t::leaf); |
769 | 7.26k | assert(count > 0); |
770 | 7.26k | return singleton_regular_sub_pos<NodeT>{leaf, count}; |
771 | 7.26k | } |
772 | | |
773 | | template <typename NodeT> |
774 | | struct regular_sub_pos |
775 | | { |
776 | | static constexpr auto B = NodeT::bits; |
777 | | static constexpr auto BL = NodeT::bits_leaf; |
778 | | |
779 | | using node_t = NodeT; |
780 | | node_t* node_; |
781 | | shift_t shift_; |
782 | | size_t size_; |
783 | | |
784 | 18.2M | count_t count() const { return subindex(size_ - 1) + 1; } |
785 | 25.0M | node_t* node() const { return node_; } |
786 | 6.78M | size_t size() const { return size_; } |
787 | 9.73M | shift_t shift() const { return shift_; } |
788 | 2.13M | count_t index(size_t idx) const { return (idx >> shift_) & mask<B>; } |
789 | 21.4M | count_t subindex(size_t idx) const { return idx >> shift_; } |
790 | | size_t size_before(count_t offset) const |
791 | 1.66M | { |
792 | 1.66M | return size_t{offset} << shift_; |
793 | 1.66M | } |
794 | 20.7k | size_t this_size() const { return size_; } |
795 | | |
796 | | auto size(count_t offset) |
797 | 3.18M | { |
798 | 3.18M | return offset == subindex(size_ - 1) ? size_ - size_before(offset) |
799 | 3.18M | : size_t{1} << shift_; |
800 | 3.18M | } |
801 | | |
802 | | auto size_sbh(count_t offset, size_t size_before_hint) |
803 | 20.7k | { |
804 | 20.7k | assert(size_before_hint == size_before(offset)); |
805 | 20.7k | return offset == subindex(size_ - 1) ? size_ - size_before_hint |
806 | 20.7k | : size_t{1} << shift_; |
807 | 20.7k | } |
808 | | |
809 | | void copy_sizes(count_t offset, count_t n, size_t init, size_t* sizes) |
810 | 3.16M | { |
811 | 3.16M | if (n) { |
812 | 3.16M | auto last = offset + n - 1; |
813 | 3.16M | auto e = sizes + n - 1; |
814 | 12.6M | for (; sizes != e; ++sizes) { |
815 | 9.47M | init = *sizes = init + (size_t{1} << shift_); |
816 | 9.47M | assert(init); |
817 | 9.47M | } |
818 | 3.16M | *sizes = init + size(last); |
819 | 3.16M | assert(*sizes); |
820 | 3.16M | } |
821 | 3.16M | } |
822 | | |
823 | | template <typename Visitor, typename... Args> |
824 | | void each(Visitor v, Args&&... args) |
825 | 434k | { |
826 | 434k | return each_regular(*this, v, args...); |
827 | 434k | } |
828 | | |
829 | | template <typename Visitor, typename... Args> |
830 | | bool each_pred(Visitor v, Args&&... args) |
831 | 17.8k | { |
832 | 17.8k | return each_pred_regular(*this, v, args...); |
833 | 17.8k | } |
834 | | |
835 | | template <typename Visitor, typename... Args> |
836 | | bool each_pred_zip(Visitor v, node_t* other, Args&&... args) |
837 | 5.44k | { |
838 | 5.44k | return each_pred_zip_regular(*this, v, other, args...); |
839 | 5.44k | } |
840 | | |
841 | | template <typename Visitor, typename... Args> |
842 | | bool each_pred_i(Visitor v, count_t i, count_t n, Args&&... args) |
843 | | { |
844 | | return each_pred_i_regular(*this, v, i, n, args...); |
845 | | } |
846 | | |
847 | | template <typename Visitor, typename... Args> |
848 | | bool each_pred_right(Visitor v, count_t start, Args&&... args) |
849 | | { |
850 | | return each_pred_right_regular(*this, v, start, args...); |
851 | | } |
852 | | |
853 | | template <typename Visitor, typename... Args> |
854 | | bool each_pred_left(Visitor v, count_t last, Args&&... args) |
855 | | { |
856 | | return each_pred_left_regular(*this, v, last, args...); |
857 | | } |
858 | | |
859 | | template <typename Visitor, typename... Args> |
860 | | void each_i(Visitor v, count_t i, count_t n, Args&&... args) |
861 | | { |
862 | | return each_i_regular(*this, v, i, n, args...); |
863 | | } |
864 | | |
865 | | template <typename Visitor, typename... Args> |
866 | | void each_right(Visitor v, count_t start, Args&&... args) |
867 | 12.1k | { |
868 | 12.1k | return each_right_regular(*this, v, start, args...); |
869 | 12.1k | } |
870 | | |
871 | | template <typename Visitor, typename... Args> |
872 | | void each_left(Visitor v, count_t last, Args&&... args) |
873 | 2.95M | { |
874 | 2.95M | return each_left_regular(*this, v, last, args...); |
875 | 2.95M | } void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, unsigned int, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 873 | 1.47M | { | 874 | 1.47M | return each_left_regular(*this, v, last, args...); | 875 | 1.47M | } |
void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, unsigned int, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 873 | 1.47M | { | 874 | 1.47M | return each_left_regular(*this, v, last, args...); | 875 | 1.47M | } |
Unexecuted instantiation: void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor, unsigned int) Unexecuted instantiation: void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, unsigned int, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
876 | | |
877 | | template <typename Visitor, typename... Args> |
878 | | void each_right_sub_(Visitor v, count_t i, Args&&... args) |
879 | 627k | { |
880 | 627k | auto last = count() - 1; |
881 | 627k | auto lsize = size_ - (last << shift_); |
882 | 627k | auto n = node()->inner() + i; |
883 | 627k | auto e = node()->inner() + last; |
884 | 627k | if (shift() == BL) { |
885 | 4.18M | for (; n != e; ++n) { |
886 | 3.58M | IMMER_PREFETCH(n + 1); |
887 | 3.58M | make_full_leaf_pos(*n).visit(v, args...); |
888 | 3.58M | } |
889 | 600k | make_leaf_sub_pos(*n, lsize).visit(v, args...); |
890 | 600k | } else { |
891 | 26.9k | auto ss = shift_ - B; |
892 | 117k | for (; n != e; ++n) |
893 | 90.1k | make_full_pos(*n, ss).visit(v, args...); |
894 | 26.9k | make_regular_sub_pos(*n, ss, lsize).visit(v, args...); |
895 | 26.9k | } |
896 | 627k | } void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub_<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, unsigned int, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 879 | 313k | { | 880 | 313k | auto last = count() - 1; | 881 | 313k | auto lsize = size_ - (last << shift_); | 882 | 313k | auto n = node()->inner() + i; | 883 | 313k | auto e = node()->inner() + last; | 884 | 313k | if (shift() == BL) { | 885 | 2.09M | for (; n != e; ++n) { | 886 | 1.79M | IMMER_PREFETCH(n + 1); | 887 | 1.79M | make_full_leaf_pos(*n).visit(v, args...); | 888 | 1.79M | } | 889 | 300k | make_leaf_sub_pos(*n, lsize).visit(v, args...); | 890 | 300k | } else { | 891 | 13.4k | auto ss = shift_ - B; | 892 | 58.5k | for (; n != e; ++n) | 893 | 45.0k | make_full_pos(*n, ss).visit(v, args...); | 894 | 13.4k | make_regular_sub_pos(*n, ss, lsize).visit(v, args...); | 895 | 13.4k | } | 896 | 313k | } |
void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub_<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, unsigned int, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 879 | 313k | { | 880 | 313k | auto last = count() - 1; | 881 | 313k | auto lsize = size_ - (last << shift_); | 882 | 313k | auto n = node()->inner() + i; | 883 | 313k | auto e = node()->inner() + last; | 884 | 313k | if (shift() == BL) { | 885 | 2.09M | for (; n != e; ++n) { | 886 | 1.79M | IMMER_PREFETCH(n + 1); | 887 | 1.79M | make_full_leaf_pos(*n).visit(v, args...); | 888 | 1.79M | } | 889 | 300k | make_leaf_sub_pos(*n, lsize).visit(v, args...); | 890 | 300k | } else { | 891 | 13.4k | auto ss = shift_ - B; | 892 | 58.5k | for (; n != e; ++n) | 893 | 45.0k | make_full_pos(*n, ss).visit(v, args...); | 894 | 13.4k | make_regular_sub_pos(*n, ss, lsize).visit(v, args...); | 895 | 13.4k | } | 896 | 313k | } |
Unexecuted instantiation: void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub_<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, unsigned int, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
897 | | |
898 | | template <typename Visitor, typename... Args> |
899 | | void each_sub(Visitor v, Args&&... args) |
900 | | { |
901 | | each_right_sub_(v, 0, args...); |
902 | | } |
903 | | |
904 | | template <typename Visitor, typename... Args> |
905 | | void each_right_sub(Visitor v, Args&&... args) |
906 | 646k | { |
907 | 646k | if (count() > 1) |
908 | 627k | each_right_sub_(v, 1, args...); |
909 | 646k | } void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 906 | 323k | { | 907 | 323k | if (count() > 1) | 908 | 313k | each_right_sub_(v, 1, args...); | 909 | 323k | } |
void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 906 | 323k | { | 907 | 323k | if (count() > 1) | 908 | 313k | each_right_sub_(v, 1, args...); | 909 | 323k | } |
Unexecuted instantiation: void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
910 | | |
911 | | template <typename Visitor, typename... Args> |
912 | | void each_left_sub(Visitor v, Args&&... args) |
913 | 2.95M | { |
914 | 2.95M | each_left(v, count() - 1, args...); |
915 | 2.95M | } void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 913 | 1.47M | { | 914 | 1.47M | each_left(v, count() - 1, args...); | 915 | 1.47M | } |
void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 913 | 1.47M | { | 914 | 1.47M | each_left(v, count() - 1, args...); | 915 | 1.47M | } |
Unexecuted instantiation: void immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
916 | | |
917 | | template <typename Visitor, typename... Args> |
918 | | decltype(auto) towards(Visitor v, size_t idx, Args&&... args) |
919 | 290k | { |
920 | 290k | return towards_oh_ch_regular( |
921 | 290k | *this, v, idx, index(idx), count(), args...); |
922 | 290k | } |
923 | | |
924 | | template <typename Visitor, typename... Args> |
925 | | decltype(auto) |
926 | | towards_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
927 | 32.6k | { |
928 | 32.6k | return towards_oh_ch_regular( |
929 | 32.6k | *this, v, idx, offset_hint, count(), args...); |
930 | 32.6k | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 927 | 5.26k | { | 928 | 5.26k | return towards_oh_ch_regular( | 929 | 5.26k | *this, v, idx, offset_hint, count(), args...); | 930 | 5.26k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Line | Count | Source | 927 | 5.67k | { | 928 | 5.67k | return towards_oh_ch_regular( | 929 | 5.67k | *this, v, idx, offset_hint, count(), args...); | 930 | 5.67k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 927 | 2.46k | { | 928 | 2.46k | return towards_oh_ch_regular( | 929 | 2.46k | *this, v, idx, offset_hint, count(), args...); | 930 | 2.46k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 927 | 6.94k | { | 928 | 6.94k | return towards_oh_ch_regular( | 929 | 6.94k | *this, v, idx, offset_hint, count(), args...); | 930 | 6.94k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 927 | 7.12k | { | 928 | 7.12k | return towards_oh_ch_regular( | 929 | 7.12k | *this, v, idx, offset_hint, count(), args...); | 930 | 7.12k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 927 | 5.17k | { | 928 | 5.17k | return towards_oh_ch_regular( | 929 | 5.17k | *this, v, idx, offset_hint, count(), args...); | 930 | 5.17k | } |
|
931 | | |
932 | | template <typename Visitor, typename... Args> |
933 | | decltype(auto) towards_oh_ch(Visitor v, |
934 | | size_t idx, |
935 | | count_t offset_hint, |
936 | | count_t count_hint, |
937 | | Args&&... args) |
938 | 57.5k | { |
939 | 57.5k | return towards_oh_ch_regular( |
940 | 57.5k | *this, v, idx, offset_hint, count(), args...); |
941 | 57.5k | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_ch<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 938 | 52.0k | { | 939 | 52.0k | return towards_oh_ch_regular( | 940 | 52.0k | *this, v, idx, offset_hint, count(), args...); | 941 | 52.0k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_ch<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 938 | 5.42k | { | 939 | 5.42k | return towards_oh_ch_regular( | 940 | 5.42k | *this, v, idx, offset_hint, count(), args...); | 941 | 5.42k | } |
|
942 | | |
943 | | template <typename Visitor, typename... Args> |
944 | | decltype(auto) |
945 | | towards_sub_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
946 | 20.7k | { |
947 | 20.7k | return towards_sub_oh_regular(*this, v, idx, offset_hint, args...); |
948 | 20.7k | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 946 | 9.11k | { | 947 | 9.11k | return towards_sub_oh_regular(*this, v, idx, offset_hint, args...); | 948 | 9.11k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Line | Count | Source | 946 | 2.32k | { | 947 | 2.32k | return towards_sub_oh_regular(*this, v, idx, offset_hint, args...); | 948 | 2.32k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 946 | 1.61k | { | 947 | 1.61k | return towards_sub_oh_regular(*this, v, idx, offset_hint, args...); | 948 | 1.61k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 946 | 7.72k | { | 947 | 7.72k | return towards_sub_oh_regular(*this, v, idx, offset_hint, args...); | 948 | 7.72k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
949 | | |
950 | | template <typename Visitor, typename... Args> |
951 | | decltype(auto) last_oh(Visitor v, count_t offset_hint, Args&&... args) |
952 | 631k | { |
953 | 631k | return last_oh_regular(*this, v, offset_hint, args...); |
954 | 631k | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned int, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 952 | 306k | { | 953 | 306k | return last_oh_regular(*this, v, offset_hint, args...); | 954 | 306k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 952 | 323k | { | 953 | 323k | return last_oh_regular(*this, v, offset_hint, args...); | 954 | 323k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 952 | 1.67k | { | 953 | 1.67k | return last_oh_regular(*this, v, offset_hint, args...); | 954 | 1.67k | } |
|
955 | | |
956 | | template <typename Visitor, typename... Args> |
957 | | decltype(auto) last_sub(Visitor v, Args&&... args) |
958 | 1.47M | { |
959 | 1.47M | auto offset = count() - 1; |
960 | 1.47M | auto child = node_->inner()[offset]; |
961 | 1.47M | auto is_leaf = shift_ == BL; |
962 | 1.47M | auto lsize = size_ - (size_t{offset} << shift_); |
963 | 1.47M | return is_leaf ? make_leaf_sub_pos(child, lsize).visit(v, args...) |
964 | 1.47M | : make_regular_sub_pos(child, shift_ - B, lsize) |
965 | 718k | .visit(v, args...); |
966 | 1.47M | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 958 | 2.13k | { | 959 | 2.13k | auto offset = count() - 1; | 960 | 2.13k | auto child = node_->inner()[offset]; | 961 | 2.13k | auto is_leaf = shift_ == BL; | 962 | 2.13k | auto lsize = size_ - (size_t{offset} << shift_); | 963 | 2.13k | return is_leaf ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 964 | 2.13k | : make_regular_sub_pos(child, shift_ - B, lsize) | 965 | 2.13k | .visit(v, args...); | 966 | 2.13k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 958 | 883 | { | 959 | 883 | auto offset = count() - 1; | 960 | 883 | auto child = node_->inner()[offset]; | 961 | 883 | auto is_leaf = shift_ == BL; | 962 | 883 | auto lsize = size_ - (size_t{offset} << shift_); | 963 | 883 | return is_leaf ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 964 | 883 | : make_regular_sub_pos(child, shift_ - B, lsize) | 965 | 883 | .visit(v, args...); | 966 | 883 | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 958 | 18.1k | { | 959 | 18.1k | auto offset = count() - 1; | 960 | 18.1k | auto child = node_->inner()[offset]; | 961 | 18.1k | auto is_leaf = shift_ == BL; | 962 | 18.1k | auto lsize = size_ - (size_t{offset} << shift_); | 963 | 18.1k | return is_leaf ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 964 | 18.1k | : make_regular_sub_pos(child, shift_ - B, lsize) | 965 | 6.90k | .visit(v, args...); | 966 | 18.1k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 958 | 312k | { | 959 | 312k | auto offset = count() - 1; | 960 | 312k | auto child = node_->inner()[offset]; | 961 | 312k | auto is_leaf = shift_ == BL; | 962 | 312k | auto lsize = size_ - (size_t{offset} << shift_); | 963 | 312k | return is_leaf ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 964 | 312k | : make_regular_sub_pos(child, shift_ - B, lsize) | 965 | 7.45k | .visit(v, args...); | 966 | 312k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 958 | 1.14M | { | 959 | 1.14M | auto offset = count() - 1; | 960 | 1.14M | auto child = node_->inner()[offset]; | 961 | 1.14M | auto is_leaf = shift_ == BL; | 962 | 1.14M | auto lsize = size_ - (size_t{offset} << shift_); | 963 | 1.14M | return is_leaf ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 964 | 1.14M | : make_regular_sub_pos(child, shift_ - B, lsize) | 965 | 701k | .visit(v, args...); | 966 | 1.14M | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) |
967 | | |
968 | | template <typename Visitor, typename... Args> |
969 | | decltype(auto) first_sub(Visitor v, Args&&... args) |
970 | 13.4k | { |
971 | 13.4k | auto is_leaf = shift_ == BL; |
972 | 13.4k | auto child = node_->inner()[0]; |
973 | 13.4k | auto is_full = size_ >= (size_t{1} << shift_); |
974 | 13.4k | return is_full |
975 | 13.4k | ? (is_leaf |
976 | 13.4k | ? make_full_leaf_pos(child).visit(v, args...) |
977 | 13.4k | : make_full_pos(child, shift_ - B).visit(v, args...)) |
978 | 13.4k | : (is_leaf |
979 | 0 | ? make_leaf_sub_pos(child, size_).visit(v, args...) |
980 | 0 | : make_regular_sub_pos(child, shift_ - B, size_) |
981 | 0 | .visit(v, args...)); |
982 | 13.4k | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 970 | 610 | { | 971 | 610 | auto is_leaf = shift_ == BL; | 972 | 610 | auto child = node_->inner()[0]; | 973 | 610 | auto is_full = size_ >= (size_t{1} << shift_); | 974 | 610 | return is_full | 975 | 610 | ? (is_leaf | 976 | 610 | ? make_full_leaf_pos(child).visit(v, args...) | 977 | 610 | : make_full_pos(child, shift_ - B).visit(v, args...)) | 978 | 610 | : (is_leaf | 979 | 0 | ? make_leaf_sub_pos(child, size_).visit(v, args...) | 980 | 0 | : make_regular_sub_pos(child, shift_ - B, size_) | 981 | 0 | .visit(v, args...)); | 982 | 610 | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 970 | 11.0k | { | 971 | 11.0k | auto is_leaf = shift_ == BL; | 972 | 11.0k | auto child = node_->inner()[0]; | 973 | 11.0k | auto is_full = size_ >= (size_t{1} << shift_); | 974 | 11.0k | return is_full | 975 | 11.0k | ? (is_leaf | 976 | 11.0k | ? make_full_leaf_pos(child).visit(v, args...) | 977 | 11.0k | : make_full_pos(child, shift_ - B).visit(v, args...)) | 978 | 11.0k | : (is_leaf | 979 | 0 | ? make_leaf_sub_pos(child, size_).visit(v, args...) | 980 | 0 | : make_regular_sub_pos(child, shift_ - B, size_) | 981 | 0 | .visit(v, args...)); | 982 | 11.0k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 970 | 1.82k | { | 971 | 1.82k | auto is_leaf = shift_ == BL; | 972 | 1.82k | auto child = node_->inner()[0]; | 973 | 1.82k | auto is_full = size_ >= (size_t{1} << shift_); | 974 | 1.82k | return is_full | 975 | 1.82k | ? (is_leaf | 976 | 1.82k | ? make_full_leaf_pos(child).visit(v, args...) | 977 | 1.82k | : make_full_pos(child, shift_ - B).visit(v, args...)) | 978 | 1.82k | : (is_leaf | 979 | 0 | ? make_leaf_sub_pos(child, size_).visit(v, args...) | 980 | 0 | : make_regular_sub_pos(child, shift_ - B, size_) | 981 | 0 | .visit(v, args...)); | 982 | 1.82k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
983 | | |
984 | | template <typename Visitor, typename... Args> |
985 | | decltype(auto) first_sub_leaf(Visitor v, Args&&... args) |
986 | 309k | { |
987 | 309k | assert(shift_ == BL); |
988 | 309k | auto child = node_->inner()[0]; |
989 | 309k | auto is_full = size_ >= branches<BL>; |
990 | 309k | return is_full ? make_full_leaf_pos(child).visit(v, args...) |
991 | 309k | : make_leaf_sub_pos(child, size_).visit(v, args...); |
992 | 309k | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 986 | 1.82k | { | 987 | 1.82k | assert(shift_ == BL); | 988 | 1.82k | auto child = node_->inner()[0]; | 989 | 1.82k | auto is_full = size_ >= branches<BL>; | 990 | 1.82k | return is_full ? make_full_leaf_pos(child).visit(v, args...) | 991 | 1.82k | : make_leaf_sub_pos(child, size_).visit(v, args...); | 992 | 1.82k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 986 | 307k | { | 987 | 307k | assert(shift_ == BL); | 988 | 307k | auto child = node_->inner()[0]; | 989 | 307k | auto is_full = size_ >= branches<BL>; | 990 | 307k | return is_full ? make_full_leaf_pos(child).visit(v, args...) | 991 | 307k | : make_leaf_sub_pos(child, size_).visit(v, args...); | 992 | 307k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
993 | | |
994 | | template <typename Visitor, typename... Args> |
995 | | decltype(auto) first_sub_inner(Visitor v, Args&&... args) |
996 | 0 | { |
997 | 0 | assert(shift_ >= BL); |
998 | 0 | auto child = node_->inner()[0]; |
999 | 0 | auto is_full = size_ >= branches<BL>; |
1000 | 0 | return is_full ? make_full_pos(child, shift_ - B).visit(v, args...) |
1001 | 0 | : make_regular_sub_pos(child, shift_ - B, size_) |
1002 | 0 | .visit(v, args...); |
1003 | 0 | } |
1004 | | |
1005 | | template <typename Visitor, typename... Args> |
1006 | | decltype(auto) nth_sub(count_t idx, Visitor v, Args&&... args) |
1007 | 15.9k | { |
1008 | 15.9k | assert(idx < count()); |
1009 | 15.9k | auto is_leaf = shift_ == BL; |
1010 | 15.9k | auto child = node_->inner()[idx]; |
1011 | 15.9k | auto lsize = size(idx); |
1012 | 15.9k | auto is_full = idx + 1 < count(); |
1013 | 15.9k | return is_full |
1014 | 15.9k | ? (is_leaf |
1015 | 13.1k | ? make_full_leaf_pos(child).visit(v, args...) |
1016 | 13.1k | : make_full_pos(child, shift_ - B).visit(v, args...)) |
1017 | 15.9k | : (is_leaf |
1018 | 2.85k | ? make_leaf_sub_pos(child, lsize).visit(v, args...) |
1019 | 2.85k | : make_regular_sub_pos(child, shift_ - B, lsize) |
1020 | 1.11k | .visit(v, args...)); |
1021 | 15.9k | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1007 | 1.96k | { | 1008 | 1.96k | assert(idx < count()); | 1009 | 1.96k | auto is_leaf = shift_ == BL; | 1010 | 1.96k | auto child = node_->inner()[idx]; | 1011 | 1.96k | auto lsize = size(idx); | 1012 | 1.96k | auto is_full = idx + 1 < count(); | 1013 | 1.96k | return is_full | 1014 | 1.96k | ? (is_leaf | 1015 | 1.63k | ? make_full_leaf_pos(child).visit(v, args...) | 1016 | 1.63k | : make_full_pos(child, shift_ - B).visit(v, args...)) | 1017 | 1.96k | : (is_leaf | 1018 | 326 | ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 1019 | 326 | : make_regular_sub_pos(child, shift_ - B, lsize) | 1020 | 326 | .visit(v, args...)); | 1021 | 1.96k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1007 | 910 | { | 1008 | 910 | assert(idx < count()); | 1009 | 910 | auto is_leaf = shift_ == BL; | 1010 | 910 | auto child = node_->inner()[idx]; | 1011 | 910 | auto lsize = size(idx); | 1012 | 910 | auto is_full = idx + 1 < count(); | 1013 | 910 | return is_full | 1014 | 910 | ? (is_leaf | 1015 | 910 | ? make_full_leaf_pos(child).visit(v, args...) | 1016 | 910 | : make_full_pos(child, shift_ - B).visit(v, args...)) | 1017 | 910 | : (is_leaf | 1018 | 0 | ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 1019 | 0 | : make_regular_sub_pos(child, shift_ - B, lsize) | 1020 | 0 | .visit(v, args...)); | 1021 | 910 | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}>(unsigned int, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&&)Line | Count | Source | 1007 | 5.28k | { | 1008 | 5.28k | assert(idx < count()); | 1009 | 5.28k | auto is_leaf = shift_ == BL; | 1010 | 5.28k | auto child = node_->inner()[idx]; | 1011 | 5.28k | auto lsize = size(idx); | 1012 | 5.28k | auto is_full = idx + 1 < count(); | 1013 | 5.28k | return is_full | 1014 | 5.28k | ? (is_leaf | 1015 | 3.29k | ? make_full_leaf_pos(child).visit(v, args...) | 1016 | 3.29k | : make_full_pos(child, shift_ - B).visit(v, args...)) | 1017 | 5.28k | : (is_leaf | 1018 | 1.98k | ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 1019 | 1.98k | : make_regular_sub_pos(child, shift_ - B, lsize) | 1020 | 793 | .visit(v, args...)); | 1021 | 5.28k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(unsigned int, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1007 | 7.83k | { | 1008 | 7.83k | assert(idx < count()); | 1009 | 7.83k | auto is_leaf = shift_ == BL; | 1010 | 7.83k | auto child = node_->inner()[idx]; | 1011 | 7.83k | auto lsize = size(idx); | 1012 | 7.83k | auto is_full = idx + 1 < count(); | 1013 | 7.83k | return is_full | 1014 | 7.83k | ? (is_leaf | 1015 | 7.29k | ? make_full_leaf_pos(child).visit(v, args...) | 1016 | 7.29k | : make_full_pos(child, shift_ - B).visit(v, args...)) | 1017 | 7.83k | : (is_leaf | 1018 | 540 | ? make_leaf_sub_pos(child, lsize).visit(v, args...) | 1019 | 540 | : make_regular_sub_pos(child, shift_ - B, lsize) | 1020 | 0 | .visit(v, args...)); | 1021 | 7.83k | } |
|
1022 | | |
1023 | | template <typename Visitor, typename... Args> |
1024 | | decltype(auto) nth_sub_leaf(count_t idx, Visitor v, Args&&... args) |
1025 | 5.35k | { |
1026 | 5.35k | assert(shift_ == BL); |
1027 | 5.35k | auto child = node_->inner()[idx]; |
1028 | 5.35k | auto lsize = size(idx); |
1029 | 5.35k | auto is_full = idx + 1 < count(); |
1030 | 5.35k | return is_full ? make_full_leaf_pos(child).visit(v, args...) |
1031 | 5.35k | : make_leaf_sub_pos(child, lsize).visit(v, args...); |
1032 | 5.35k | } |
1033 | | |
1034 | | template <typename Visitor, typename... Args> |
1035 | | decltype(auto) visit(Visitor v, Args&&... args) |
1036 | 24.9M | { |
1037 | 24.9M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
1038 | 24.9M | } decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 1036 | 14.9M | { | 1037 | 14.9M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 14.9M | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1036 | 39.9k | { | 1037 | 39.9k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 39.9k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 1036 | 297k | { | 1037 | 297k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 297k | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1036 | 52.0k | { | 1037 | 52.0k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 52.0k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1036 | 2.90k | { | 1037 | 2.90k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.90k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1036 | 8.03k | { | 1037 | 8.03k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 8.03k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1036 | 1.70k | { | 1037 | 1.70k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.70k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1036 | 8.15k | { | 1037 | 8.15k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 8.15k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&&) Line | Count | Source | 1036 | 1.58k | { | 1037 | 1.58k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.58k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 281 | { | 1037 | 281 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 281 | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1036 | 3.55M | { | 1037 | 3.55M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 3.55M | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 3.55M | { | 1037 | 3.55M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 3.55M | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 2.15k | { | 1037 | 2.15k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.15k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 4.10k | { | 1037 | 4.10k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 4.10k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 302k | { | 1037 | 302k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 302k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 1.28k | { | 1037 | 1.28k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.28k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 7.12k | { | 1037 | 7.12k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 7.12k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 10.7k | { | 1037 | 10.7k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 10.7k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 1.43M | { | 1037 | 1.43M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.43M | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 1.29k | { | 1037 | 1.29k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.29k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 7.03k | { | 1037 | 7.03k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 7.03k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Line | Count | Source | 1036 | 16.8k | { | 1037 | 16.8k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 16.8k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1036 | 10.2k | { | 1037 | 10.2k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 10.2k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1036 | 154k | { | 1037 | 154k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 154k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1036 | 1.12k | { | 1037 | 1.12k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.12k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 1036 | 181k | { | 1037 | 181k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 181k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1036 | 2.22k | { | 1037 | 2.22k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.22k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 1036 | 3.19k | { | 1037 | 3.19k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 3.19k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 1.19k | { | 1037 | 1.19k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.19k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 4.62k | { | 1037 | 4.62k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 4.62k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_right_visitor, unsigned int>(immer::detail::rbts::dec_right_visitor, unsigned int&&) Line | Count | Source | 1036 | 10.4k | { | 1037 | 10.4k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 10.4k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 3.17k | { | 1037 | 3.17k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 3.17k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 12.7k | { | 1037 | 12.7k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 12.7k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 1.11k | { | 1037 | 1.11k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.11k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 974 | { | 1037 | 974 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 974 | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_left_visitor, unsigned int&>(immer::detail::rbts::dec_left_visitor, unsigned int&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 2.29k | { | 1037 | 2.29k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.29k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 2.18k | { | 1037 | 2.18k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.18k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1036 | 2.76k | { | 1037 | 2.76k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.76k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1036 | 1.20k | { | 1037 | 1.20k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 1.20k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1036 | 925 | { | 1037 | 925 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 925 | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 1036 | 290k | { | 1037 | 290k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 290k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1036 | 910 | { | 1037 | 910 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 910 | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1036 | 4.04k | { | 1037 | 4.04k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 4.04k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 1036 | 17.8k | { | 1037 | 17.8k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 17.8k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1036 | 4.98k | { | 1037 | 4.98k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 4.98k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1036 | 2.62k | { | 1037 | 2.62k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 2.62k | } |
decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1036 | 3.02k | { | 1037 | 3.02k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 3.02k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1036 | 5.95k | { | 1037 | 5.95k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 5.95k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&, unsigned int const&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&, unsigned int const&, unsigned long&) Line | Count | Source | 1036 | 8.67k | { | 1037 | 8.67k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1038 | 8.67k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1039 | | }; |
1040 | | |
1041 | | template <typename NodeT> |
1042 | | regular_sub_pos<NodeT> |
1043 | | make_regular_sub_pos(NodeT* node, shift_t shift, size_t size) |
1044 | 24.9M | { |
1045 | 24.9M | assert(node); |
1046 | 24.9M | assert(shift >= NodeT::bits_leaf); |
1047 | 24.9M | assert(size > 0); |
1048 | 24.9M | assert(size <= (branches<NodeT::bits, size_t> << shift)); |
1049 | 24.9M | return {node, shift, size}; |
1050 | 24.9M | } |
1051 | | |
1052 | | template <typename NodeT, |
1053 | | shift_t Shift, |
1054 | | bits_t B = NodeT::bits, |
1055 | | bits_t BL = NodeT::bits_leaf> |
1056 | | struct regular_descent_pos |
1057 | | { |
1058 | | static_assert(Shift > 0, "not leaf..."); |
1059 | | |
1060 | | using node_t = NodeT; |
1061 | | node_t* node_; |
1062 | | |
1063 | | node_t* node() const { return node_; } |
1064 | | shift_t shift() const { return Shift; } |
1065 | | count_t index(size_t idx) const |
1066 | | { |
1067 | | #if !defined(_MSC_VER) |
1068 | | #pragma GCC diagnostic push |
1069 | | #pragma GCC diagnostic ignored "-Wshift-count-overflow" |
1070 | | #endif |
1071 | | return (idx >> Shift) & mask<B>; |
1072 | | #if !defined(_MSC_VER) |
1073 | | #pragma GCC diagnostic pop |
1074 | | #endif |
1075 | | } |
1076 | | |
1077 | | template <typename Visitor> |
1078 | | decltype(auto) descend(Visitor v, size_t idx) |
1079 | | { |
1080 | | auto offset = index(idx); |
1081 | | auto child = node_->inner()[offset]; |
1082 | | return regular_descent_pos<NodeT, Shift - B>{child}.visit(v, idx); |
1083 | | } |
1084 | | |
1085 | | template <typename Visitor, typename... Args> |
1086 | | decltype(auto) visit(Visitor v, Args&&... args) |
1087 | | { |
1088 | | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
1089 | | } |
1090 | | }; |
1091 | | |
1092 | | template <typename NodeT, bits_t B, bits_t BL> |
1093 | | struct regular_descent_pos<NodeT, BL, B, BL> |
1094 | | { |
1095 | | using node_t = NodeT; |
1096 | | node_t* node_; |
1097 | | |
1098 | | node_t* node() const { return node_; } |
1099 | | shift_t shift() const { return BL; } |
1100 | | count_t index(size_t idx) const { return (idx >> BL) & mask<B>; } |
1101 | | |
1102 | | template <typename Visitor> |
1103 | | decltype(auto) descend(Visitor v, size_t idx) |
1104 | | { |
1105 | | auto offset = index(idx); |
1106 | | auto child = node_->inner()[offset]; |
1107 | | return make_leaf_descent_pos(child).visit(v, idx); |
1108 | | } |
1109 | | |
1110 | | template <typename Visitor, typename... Args> |
1111 | | decltype(auto) visit(Visitor v, Args&&... args) |
1112 | | { |
1113 | | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
1114 | | } |
1115 | | }; |
1116 | | |
1117 | | template <typename NodeT, typename Visitor> |
1118 | | decltype(auto) |
1119 | | visit_regular_descent(NodeT* node, shift_t shift, Visitor v, size_t idx) |
1120 | | { |
1121 | | constexpr auto B = NodeT::bits; |
1122 | | constexpr auto BL = NodeT::bits_leaf; |
1123 | | assert(node); |
1124 | | assert(shift >= BL); |
1125 | | switch (shift) { |
1126 | | case BL + B * 0: |
1127 | | return regular_descent_pos<NodeT, BL + B * 0>{node}.visit(v, idx); |
1128 | | case BL + B * 1: |
1129 | | return regular_descent_pos<NodeT, BL + B * 1>{node}.visit(v, idx); |
1130 | | case BL + B * 2: |
1131 | | return regular_descent_pos<NodeT, BL + B * 2>{node}.visit(v, idx); |
1132 | | case BL + B * 3: |
1133 | | return regular_descent_pos<NodeT, BL + B * 3>{node}.visit(v, idx); |
1134 | | case BL + B * 4: |
1135 | | return regular_descent_pos<NodeT, BL + B * 4>{node}.visit(v, idx); |
1136 | | case BL + B * 5: |
1137 | | return regular_descent_pos<NodeT, BL + B * 5>{node}.visit(v, idx); |
1138 | | #if IMMER_DESCENT_DEEP |
1139 | | default: |
1140 | | for (auto level = shift; level != endshift<B, BL>; level -= B) |
1141 | | node = node->inner()[(idx >> level) & mask<B>]; |
1142 | | return make_leaf_descent_pos(node).visit(v, idx); |
1143 | | #endif // IMMER_DEEP_DESCENT |
1144 | | } |
1145 | | IMMER_UNREACHABLE; |
1146 | | } |
1147 | | |
1148 | | template <typename NodeT> |
1149 | | struct full_pos |
1150 | | { |
1151 | | static constexpr auto B = NodeT::bits; |
1152 | | static constexpr auto BL = NodeT::bits_leaf; |
1153 | | |
1154 | | using node_t = NodeT; |
1155 | | node_t* node_; |
1156 | | shift_t shift_; |
1157 | | |
1158 | 1.23M | count_t count() const { return branches<B>; } |
1159 | 3.48M | node_t* node() const { return node_; } |
1160 | 545k | size_t size() const { return branches<B, size_t> << shift_; } |
1161 | 55.0k | shift_t shift() const { return shift_; } |
1162 | 662k | count_t index(size_t idx) const { return (idx >> shift_) & mask<B>; } |
1163 | 11.1k | count_t subindex(size_t idx) const { return idx >> shift_; } |
1164 | | size_t size(count_t offset) const { return size_t{1} << shift_; } |
1165 | | size_t size_sbh(count_t offset, size_t) const |
1166 | 11.1k | { |
1167 | 11.1k | return size_t{1} << shift_; |
1168 | 11.1k | } |
1169 | | size_t size_before(count_t offset) const |
1170 | 51.3k | { |
1171 | 51.3k | return size_t{offset} << shift_; |
1172 | 51.3k | } |
1173 | | |
1174 | | void copy_sizes(count_t offset, count_t n, size_t init, size_t* sizes) |
1175 | 11.1k | { |
1176 | 11.1k | auto e = sizes + n; |
1177 | 63.6k | for (; sizes != e; ++sizes) { |
1178 | 52.4k | init = *sizes = init + (size_t{1} << shift_); |
1179 | 52.4k | assert(init); |
1180 | 52.4k | } |
1181 | 11.1k | } |
1182 | | |
1183 | | template <typename Visitor, typename... Args> |
1184 | | void each(Visitor v, Args&&... args) |
1185 | 94.6k | { |
1186 | 94.6k | auto p = node_->inner(); |
1187 | 94.6k | auto e = p + branches<B>; |
1188 | 94.6k | if (shift_ == BL) { |
1189 | 742k | for (; p != e; ++p) { |
1190 | 660k | IMMER_PREFETCH(p + 1); |
1191 | 660k | make_full_leaf_pos(*p).visit(v, args...); |
1192 | 660k | } |
1193 | 82.5k | } else { |
1194 | 12.1k | auto ss = shift_ - B; |
1195 | 109k | for (; p != e; ++p) |
1196 | 96.8k | make_full_pos(*p, ss).visit(v, args...); |
1197 | 12.1k | } |
1198 | 94.6k | } |
1199 | | |
1200 | | template <typename Visitor, typename... Args> |
1201 | | bool each_pred(Visitor v, Args&&... args) |
1202 | 20.9k | { |
1203 | 20.9k | auto p = node_->inner(); |
1204 | 20.9k | auto e = p + branches<B>; |
1205 | 20.9k | if (shift_ == BL) { |
1206 | 170k | for (; p != e; ++p) { |
1207 | 151k | IMMER_PREFETCH(p + 1); |
1208 | 151k | if (!make_full_leaf_pos(*p).visit(v, args...)) |
1209 | 1.32k | return false; |
1210 | 151k | } |
1211 | 19.7k | } else { |
1212 | 1.21k | auto ss = shift_ - B; |
1213 | 10.0k | for (; p != e; ++p) |
1214 | 9.11k | if (!make_full_pos(*p, ss).visit(v, args...)) |
1215 | 241 | return false; |
1216 | 1.21k | } |
1217 | 19.3k | return true; |
1218 | 20.9k | } |
1219 | | |
1220 | | template <typename Visitor, typename... Args> |
1221 | | bool each_pred_zip(Visitor v, node_t* other, Args&&... args) |
1222 | 4.45k | { |
1223 | 4.45k | auto p = node_->inner(); |
1224 | 4.45k | auto p2 = other->inner(); |
1225 | 4.45k | auto e = p + branches<B>; |
1226 | 4.45k | if (shift_ == BL) { |
1227 | 23.1k | for (; p != e; ++p, ++p2) { |
1228 | 21.2k | IMMER_PREFETCH(p + 1); |
1229 | 21.2k | if (!make_full_leaf_pos(*p).visit(v, *p2, args...)) |
1230 | 1.47k | return false; |
1231 | 21.2k | } |
1232 | 3.40k | } else { |
1233 | 1.05k | auto ss = shift_ - B; |
1234 | 6.84k | for (; p != e; ++p, ++p2) |
1235 | 6.25k | if (!make_full_pos(*p, ss).visit(v, *p2, args...)) |
1236 | 467 | return false; |
1237 | 1.05k | } |
1238 | 2.51k | return true; |
1239 | 4.45k | } |
1240 | | |
1241 | | template <typename Visitor, typename... Args> |
1242 | | bool each_pred_i(Visitor v, count_t i, count_t n, Args&&... args) |
1243 | | { |
1244 | | auto p = node_->inner() + i; |
1245 | | auto e = node_->inner() + n; |
1246 | | if (shift_ == BL) { |
1247 | | for (; p != e; ++p) { |
1248 | | IMMER_PREFETCH(p + 1); |
1249 | | if (!make_full_leaf_pos(*p).visit(v, args...)) |
1250 | | return false; |
1251 | | } |
1252 | | } else { |
1253 | | auto ss = shift_ - B; |
1254 | | for (; p != e; ++p) |
1255 | | if (!make_full_pos(*p, ss).visit(v, args...)) |
1256 | | return false; |
1257 | | } |
1258 | | return true; |
1259 | | } |
1260 | | |
1261 | | template <typename Visitor, typename... Args> |
1262 | | void each_i(Visitor v, count_t i, count_t n, Args&&... args) |
1263 | 49.7k | { |
1264 | 49.7k | auto p = node_->inner() + i; |
1265 | 49.7k | auto e = node_->inner() + n; |
1266 | 49.7k | if (shift_ == BL) { |
1267 | 229k | for (; p != e; ++p) { |
1268 | 200k | IMMER_PREFETCH(p + 1); |
1269 | 200k | make_full_leaf_pos(*p).visit(v, args...); |
1270 | 200k | } |
1271 | 29.1k | } else { |
1272 | 20.5k | auto ss = shift_ - B; |
1273 | 164k | for (; p != e; ++p) |
1274 | 143k | make_full_pos(*p, ss).visit(v, args...); |
1275 | 20.5k | } |
1276 | 49.7k | } void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_i<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, unsigned int, unsigned int, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1263 | 23.0k | { | 1264 | 23.0k | auto p = node_->inner() + i; | 1265 | 23.0k | auto e = node_->inner() + n; | 1266 | 23.0k | if (shift_ == BL) { | 1267 | 107k | for (; p != e; ++p) { | 1268 | 94.3k | IMMER_PREFETCH(p + 1); | 1269 | 94.3k | make_full_leaf_pos(*p).visit(v, args...); | 1270 | 94.3k | } | 1271 | 13.4k | } else { | 1272 | 9.58k | auto ss = shift_ - B; | 1273 | 76.6k | for (; p != e; ++p) | 1274 | 67.0k | make_full_pos(*p, ss).visit(v, args...); | 1275 | 9.58k | } | 1276 | 23.0k | } |
void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_i<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, unsigned int, unsigned int, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1263 | 23.0k | { | 1264 | 23.0k | auto p = node_->inner() + i; | 1265 | 23.0k | auto e = node_->inner() + n; | 1266 | 23.0k | if (shift_ == BL) { | 1267 | 107k | for (; p != e; ++p) { | 1268 | 94.3k | IMMER_PREFETCH(p + 1); | 1269 | 94.3k | make_full_leaf_pos(*p).visit(v, args...); | 1270 | 94.3k | } | 1271 | 13.4k | } else { | 1272 | 9.58k | auto ss = shift_ - B; | 1273 | 76.6k | for (; p != e; ++p) | 1274 | 67.0k | make_full_pos(*p, ss).visit(v, args...); | 1275 | 9.58k | } | 1276 | 23.0k | } |
void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_i<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor, unsigned int, unsigned int) Line | Count | Source | 1263 | 3.63k | { | 1264 | 3.63k | auto p = node_->inner() + i; | 1265 | 3.63k | auto e = node_->inner() + n; | 1266 | 3.63k | if (shift_ == BL) { | 1267 | 14.3k | for (; p != e; ++p) { | 1268 | 12.1k | IMMER_PREFETCH(p + 1); | 1269 | 12.1k | make_full_leaf_pos(*p).visit(v, args...); | 1270 | 12.1k | } | 1271 | 2.22k | } else { | 1272 | 1.40k | auto ss = shift_ - B; | 1273 | 10.7k | for (; p != e; ++p) | 1274 | 9.36k | make_full_pos(*p, ss).visit(v, args...); | 1275 | 1.40k | } | 1276 | 3.63k | } |
Unexecuted instantiation: void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_i<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, unsigned int, unsigned int, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1277 | | |
1278 | | template <typename Visitor, typename... Args> |
1279 | | bool each_pred_right(Visitor v, count_t start, Args&&... args) |
1280 | | { |
1281 | | return each_pred_i(v, start, branches<B>, args...); |
1282 | | } |
1283 | | |
1284 | | template <typename Visitor, typename... Args> |
1285 | | bool each_pred_left(Visitor v, count_t last, Args&&... args) |
1286 | | { |
1287 | | return each_pred_i(v, 0, last, args...); |
1288 | | } |
1289 | | |
1290 | | template <typename Visitor, typename... Args> |
1291 | | void each_sub(Visitor v, Args&&... args) |
1292 | | { |
1293 | | each(v, args...); |
1294 | | } |
1295 | | |
1296 | | template <typename Visitor, typename... Args> |
1297 | | void each_left_sub(Visitor v, Args&&... args) |
1298 | | { |
1299 | | each_i(v, 0, branches<B> - 1, args...); |
1300 | | } |
1301 | | |
1302 | | template <typename Visitor, typename... Args> |
1303 | | void each_right_sub(Visitor v, Args&&... args) |
1304 | 46.1k | { |
1305 | 46.1k | each_i(v, 1, branches<B>, args...); |
1306 | 46.1k | } void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1304 | 23.0k | { | 1305 | 23.0k | each_i(v, 1, branches<B>, args...); | 1306 | 23.0k | } |
void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1304 | 23.0k | { | 1305 | 23.0k | each_i(v, 1, branches<B>, args...); | 1306 | 23.0k | } |
Unexecuted instantiation: void immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1307 | | |
1308 | | template <typename Visitor, typename... Args> |
1309 | | void each_right(Visitor v, count_t start, Args&&... args) |
1310 | 3.63k | { |
1311 | 3.63k | each_i(v, start, branches<B>, args...); |
1312 | 3.63k | } |
1313 | | |
1314 | | template <typename Visitor, typename... Args> |
1315 | | void each_left(Visitor v, count_t last, Args&&... args) |
1316 | 0 | { |
1317 | 0 | each_i(v, 0, last, args...); |
1318 | 0 | } |
1319 | | |
1320 | | template <typename Visitor, typename... Args> |
1321 | | decltype(auto) towards(Visitor v, size_t idx, Args&&... args) |
1322 | 288k | { |
1323 | 288k | return towards_oh(v, idx, index(idx), args...); |
1324 | 288k | } |
1325 | | |
1326 | | template <typename Visitor, typename... Args> |
1327 | | decltype(auto) towards_oh_ch( |
1328 | | Visitor v, size_t idx, count_t offset_hint, count_t, Args&&... args) |
1329 | 14.9k | { |
1330 | 14.9k | return towards_oh(v, idx, offset_hint, args...); |
1331 | 14.9k | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_ch<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1329 | 12.7k | { | 1330 | 12.7k | return towards_oh(v, idx, offset_hint, args...); | 1331 | 12.7k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_ch<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 1329 | 2.21k | { | 1330 | 2.21k | return towards_oh(v, idx, offset_hint, args...); | 1331 | 2.21k | } |
|
1332 | | |
1333 | | template <typename Visitor, typename... Args> |
1334 | | decltype(auto) |
1335 | | towards_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
1336 | 325k | { |
1337 | 325k | assert(offset_hint == index(idx)); |
1338 | 325k | auto is_leaf = shift_ == BL; |
1339 | 325k | auto child = node_->inner()[offset_hint]; |
1340 | 325k | return is_leaf |
1341 | 325k | ? make_full_leaf_pos(child).visit(v, idx, args...) |
1342 | 325k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); |
1343 | 325k | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1336 | 12.7k | { | 1337 | 12.7k | assert(offset_hint == index(idx)); | 1338 | 12.7k | auto is_leaf = shift_ == BL; | 1339 | 12.7k | auto child = node_->inner()[offset_hint]; | 1340 | 12.7k | return is_leaf | 1341 | 12.7k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 12.7k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 12.7k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 1336 | 5.39k | { | 1337 | 5.39k | assert(offset_hint == index(idx)); | 1338 | 5.39k | auto is_leaf = shift_ == BL; | 1339 | 5.39k | auto child = node_->inner()[offset_hint]; | 1340 | 5.39k | return is_leaf | 1341 | 5.39k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 5.39k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 5.39k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Line | Count | Source | 1336 | 2.19k | { | 1337 | 2.19k | assert(offset_hint == index(idx)); | 1338 | 2.19k | auto is_leaf = shift_ == BL; | 1339 | 2.19k | auto child = node_->inner()[offset_hint]; | 1340 | 2.19k | return is_leaf | 1341 | 2.19k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 2.19k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 2.19k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1336 | 2.21k | { | 1337 | 2.21k | assert(offset_hint == index(idx)); | 1338 | 2.21k | auto is_leaf = shift_ == BL; | 1339 | 2.21k | auto child = node_->inner()[offset_hint]; | 1340 | 2.21k | return is_leaf | 1341 | 2.21k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 2.21k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 2.21k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1336 | 1.45k | { | 1337 | 1.45k | assert(offset_hint == index(idx)); | 1338 | 1.45k | auto is_leaf = shift_ == BL; | 1339 | 1.45k | auto child = node_->inner()[offset_hint]; | 1340 | 1.45k | return is_leaf | 1341 | 1.45k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 1.45k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 1.45k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1336 | 2.46k | { | 1337 | 2.46k | assert(offset_hint == index(idx)); | 1338 | 2.46k | auto is_leaf = shift_ == BL; | 1339 | 2.46k | auto child = node_->inner()[offset_hint]; | 1340 | 2.46k | return is_leaf | 1341 | 2.46k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 2.46k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 2.46k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1336 | 9.55k | { | 1337 | 9.55k | assert(offset_hint == index(idx)); | 1338 | 9.55k | auto is_leaf = shift_ == BL; | 1339 | 9.55k | auto child = node_->inner()[offset_hint]; | 1340 | 9.55k | return is_leaf | 1341 | 9.55k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 9.55k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 9.55k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1336 | 1.17k | { | 1337 | 1.17k | assert(offset_hint == index(idx)); | 1338 | 1.17k | auto is_leaf = shift_ == BL; | 1339 | 1.17k | auto child = node_->inner()[offset_hint]; | 1340 | 1.17k | return is_leaf | 1341 | 1.17k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 1.17k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 1.17k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::region_for_visitor<int>>(immer::detail::rbts::region_for_visitor<int>, unsigned long, unsigned int) Line | Count | Source | 1336 | 288k | { | 1337 | 288k | assert(offset_hint == index(idx)); | 1338 | 288k | auto is_leaf = shift_ == BL; | 1339 | 288k | auto child = node_->inner()[offset_hint]; | 1340 | 288k | return is_leaf | 1341 | 288k | ? make_full_leaf_pos(child).visit(v, idx, args...) | 1342 | 288k | : make_full_pos(child, shift_ - B).visit(v, idx, args...); | 1343 | 288k | } |
|
1344 | | |
1345 | | template <typename Visitor, typename... Args> |
1346 | | decltype(auto) |
1347 | | towards_sub_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
1348 | 11.1k | { |
1349 | 11.1k | assert(offset_hint == index(idx)); |
1350 | 11.1k | auto is_leaf = shift_ == BL; |
1351 | 11.1k | auto child = node_->inner()[offset_hint]; |
1352 | 11.1k | auto lsize = size_t{offset_hint} << shift_; |
1353 | 11.1k | return is_leaf |
1354 | 11.1k | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) |
1355 | 11.1k | : make_full_pos(child, shift_ - B) |
1356 | 3.53k | .visit(v, idx - lsize, args...); |
1357 | 11.1k | } decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 1348 | 8.17k | { | 1349 | 8.17k | assert(offset_hint == index(idx)); | 1350 | 8.17k | auto is_leaf = shift_ == BL; | 1351 | 8.17k | auto child = node_->inner()[offset_hint]; | 1352 | 8.17k | auto lsize = size_t{offset_hint} << shift_; | 1353 | 8.17k | return is_leaf | 1354 | 8.17k | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) | 1355 | 8.17k | : make_full_pos(child, shift_ - B) | 1356 | 2.88k | .visit(v, idx - lsize, args...); | 1357 | 8.17k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1348 | 2.99k | { | 1349 | 2.99k | assert(offset_hint == index(idx)); | 1350 | 2.99k | auto is_leaf = shift_ == BL; | 1351 | 2.99k | auto child = node_->inner()[offset_hint]; | 1352 | 2.99k | auto lsize = size_t{offset_hint} << shift_; | 1353 | 2.99k | return is_leaf | 1354 | 2.99k | ? make_full_leaf_pos(child).visit(v, idx - lsize, args...) | 1355 | 2.99k | : make_full_pos(child, shift_ - B) | 1356 | 653 | .visit(v, idx - lsize, args...); | 1357 | 2.99k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1358 | | |
1359 | | template <typename Visitor, typename... Args> |
1360 | | decltype(auto) first_sub(Visitor v, Args&&... args) |
1361 | 9.58k | { |
1362 | 9.58k | auto is_leaf = shift_ == BL; |
1363 | 9.58k | auto child = node_->inner()[0]; |
1364 | 9.58k | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) |
1365 | 9.58k | : make_full_pos(child, shift_ - B).visit(v, args...); |
1366 | 9.58k | } decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1361 | 321 | { | 1362 | 321 | auto is_leaf = shift_ == BL; | 1363 | 321 | auto child = node_->inner()[0]; | 1364 | 321 | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1365 | 321 | : make_full_pos(child, shift_ - B).visit(v, args...); | 1366 | 321 | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1361 | 7.33k | { | 1362 | 7.33k | auto is_leaf = shift_ == BL; | 1363 | 7.33k | auto child = node_->inner()[0]; | 1364 | 7.33k | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1365 | 7.33k | : make_full_pos(child, shift_ - B).visit(v, args...); | 1366 | 7.33k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1361 | 1.93k | { | 1362 | 1.93k | auto is_leaf = shift_ == BL; | 1363 | 1.93k | auto child = node_->inner()[0]; | 1364 | 1.93k | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1365 | 1.93k | : make_full_pos(child, shift_ - B).visit(v, args...); | 1366 | 1.93k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1367 | | |
1368 | | template <typename Visitor, typename... Args> |
1369 | | decltype(auto) first_sub_leaf(Visitor v, Args&&... args) |
1370 | 13.4k | { |
1371 | 13.4k | assert(shift_ == BL); |
1372 | 13.4k | auto child = node_->inner()[0]; |
1373 | 13.4k | return make_full_leaf_pos(child).visit(v, args...); |
1374 | 13.4k | } decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1370 | 610 | { | 1371 | 610 | assert(shift_ == BL); | 1372 | 610 | auto child = node_->inner()[0]; | 1373 | 610 | return make_full_leaf_pos(child).visit(v, args...); | 1374 | 610 | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1370 | 12.8k | { | 1371 | 12.8k | assert(shift_ == BL); | 1372 | 12.8k | auto child = node_->inner()[0]; | 1373 | 12.8k | return make_full_leaf_pos(child).visit(v, args...); | 1374 | 12.8k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1375 | | |
1376 | | template <typename Visitor, typename... Args> |
1377 | | decltype(auto) first_sub_inner(Visitor v, Args&&... args) |
1378 | 0 | { |
1379 | 0 | assert(shift_ >= BL); |
1380 | 0 | auto child = node_->inner()[0]; |
1381 | 0 | return make_full_pos(child, shift_ - B).visit(v, args...); |
1382 | 0 | } |
1383 | | |
1384 | | template <typename Visitor, typename... Args> |
1385 | | decltype(auto) nth_sub(count_t idx, Visitor v, Args&&... args) |
1386 | 16.5k | { |
1387 | 16.5k | assert(idx < count()); |
1388 | 16.5k | auto is_leaf = shift_ == BL; |
1389 | 16.5k | auto child = node_->inner()[idx]; |
1390 | 16.5k | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) |
1391 | 16.5k | : make_full_pos(child, shift_ - B).visit(v, args...); |
1392 | 16.5k | } decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1386 | 580 | { | 1387 | 580 | assert(idx < count()); | 1388 | 580 | auto is_leaf = shift_ == BL; | 1389 | 580 | auto child = node_->inner()[idx]; | 1390 | 580 | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1391 | 580 | : make_full_pos(child, shift_ - B).visit(v, args...); | 1392 | 580 | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1386 | 925 | { | 1387 | 925 | assert(idx < count()); | 1388 | 925 | auto is_leaf = shift_ == BL; | 1389 | 925 | auto child = node_->inner()[idx]; | 1390 | 925 | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1391 | 925 | : make_full_pos(child, shift_ - B).visit(v, args...); | 1392 | 925 | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}>(unsigned int, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&&)Line | Count | Source | 1386 | 5.98k | { | 1387 | 5.98k | assert(idx < count()); | 1388 | 5.98k | auto is_leaf = shift_ == BL; | 1389 | 5.98k | auto child = node_->inner()[idx]; | 1390 | 5.98k | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1391 | 5.98k | : make_full_pos(child, shift_ - B).visit(v, args...); | 1392 | 5.98k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(unsigned int, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1386 | 9.06k | { | 1387 | 9.06k | assert(idx < count()); | 1388 | 9.06k | auto is_leaf = shift_ == BL; | 1389 | 9.06k | auto child = node_->inner()[idx]; | 1390 | 9.06k | return is_leaf ? make_full_leaf_pos(child).visit(v, args...) | 1391 | 9.06k | : make_full_pos(child, shift_ - B).visit(v, args...); | 1392 | 9.06k | } |
|
1393 | | |
1394 | | template <typename Visitor, typename... Args> |
1395 | | decltype(auto) nth_sub_leaf(count_t idx, Visitor v, Args&&... args) |
1396 | 7.74k | { |
1397 | 7.74k | assert(shift_ == BL); |
1398 | 7.74k | assert(idx < count()); |
1399 | 7.74k | auto child = node_->inner()[idx]; |
1400 | 7.74k | return make_full_leaf_pos(child).visit(v, args...); |
1401 | 7.74k | } |
1402 | | |
1403 | | template <typename Visitor, typename... Args> |
1404 | | decltype(auto) visit(Visitor v, Args&&... args) |
1405 | 4.35M | { |
1406 | 4.35M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); |
1407 | 4.35M | } decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 1405 | 2.87M | { | 1406 | 2.87M | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 2.87M | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1405 | 12.7k | { | 1406 | 12.7k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 12.7k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1405 | 2.18k | { | 1406 | 2.18k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 2.18k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1405 | 5.41k | { | 1406 | 5.41k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 5.41k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&&) Line | Count | Source | 1405 | 7.42k | { | 1406 | 7.42k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 7.42k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&&) Line | Count | Source | 1405 | 745 | { | 1406 | 745 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 745 | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1405 | 931 | { | 1406 | 931 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 931 | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1405 | 537k | { | 1406 | 537k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 537k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1405 | 537k | { | 1406 | 537k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 537k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1405 | 18.3k | { | 1406 | 18.3k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 18.3k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1405 | 3.75k | { | 1406 | 3.75k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 3.75k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1405 | 2.21k | { | 1406 | 2.21k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 2.21k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1405 | 1.66k | { | 1406 | 1.66k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 1.66k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1405 | 3.77k | { | 1406 | 3.77k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 3.77k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_right_visitor, unsigned int>(immer::detail::rbts::dec_right_visitor, unsigned int&&) Line | Count | Source | 1405 | 3.78k | { | 1406 | 3.78k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 3.78k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1405 | 5.31k | { | 1406 | 5.31k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 5.31k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1405 | 3.89k | { | 1406 | 3.89k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 3.89k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1405 | 636 | { | 1406 | 636 | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 636 | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_left_visitor, unsigned int&>(immer::detail::rbts::dec_left_visitor, unsigned int&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1405 | 2.35k | { | 1406 | 2.35k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 2.35k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1405 | 2.21k | { | 1406 | 2.21k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 2.21k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1405 | 1.83k | { | 1406 | 1.83k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 1.83k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&) Line | Count | Source | 1405 | 12.0k | { | 1406 | 12.0k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 12.0k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 1405 | 288k | { | 1406 | 288k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 288k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 1405 | 20.9k | { | 1406 | 20.9k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 20.9k | } |
decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1405 | 4.55k | { | 1406 | 4.55k | return Visitor::visit_regular(*this, std::forward<Args>(args)...); | 1407 | 4.55k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1408 | | }; |
1409 | | |
1410 | | template <typename NodeT> |
1411 | | full_pos<NodeT> make_full_pos(NodeT* node, shift_t shift) |
1412 | 4.34M | { |
1413 | 4.34M | assert(node); |
1414 | 4.34M | assert(shift >= NodeT::bits_leaf); |
1415 | 4.34M | return {node, shift}; |
1416 | 4.34M | } |
1417 | | |
1418 | | template <typename NodeT> |
1419 | | struct relaxed_pos |
1420 | | { |
1421 | | static constexpr auto B = NodeT::bits; |
1422 | | static constexpr auto BL = NodeT::bits_leaf; |
1423 | | |
1424 | | using node_t = NodeT; |
1425 | | using relaxed_t = typename NodeT::relaxed_t; |
1426 | | node_t* node_; |
1427 | | shift_t shift_; |
1428 | | relaxed_t* relaxed_; |
1429 | | |
1430 | 237M | count_t count() const { return relaxed_->d.count; } |
1431 | 260M | node_t* node() const { return node_; } |
1432 | 102M | size_t size() const { return relaxed_->d.sizes[relaxed_->d.count - 1]; } |
1433 | 24.5M | shift_t shift() const { return shift_; } |
1434 | 4.95M | count_t subindex(size_t idx) const { return index(idx); } |
1435 | 234k | relaxed_t* relaxed() const { return relaxed_; } |
1436 | | |
1437 | | size_t size_before(count_t offset) const |
1438 | 43.1M | { |
1439 | 43.1M | return offset ? relaxed_->d.sizes[offset - 1] : 0; |
1440 | 43.1M | } |
1441 | | |
1442 | | size_t size(count_t offset) const |
1443 | 11.6M | { |
1444 | 11.6M | return size_sbh(offset, size_before(offset)); |
1445 | 11.6M | } |
1446 | | |
1447 | | size_t size_sbh(count_t offset, size_t size_before_hint) const |
1448 | 12.0M | { |
1449 | 12.0M | assert(size_before_hint == size_before(offset)); |
1450 | 12.0M | return relaxed_->d.sizes[offset] - size_before_hint; |
1451 | 12.0M | } |
1452 | | |
1453 | | count_t index(size_t idx) const |
1454 | 16.1M | { |
1455 | 16.1M | auto offset = idx >> shift_; |
1456 | 23.2M | while (relaxed_->d.sizes[offset] <= idx) |
1457 | 7.06M | ++offset; |
1458 | 16.1M | return offset; |
1459 | 16.1M | } |
1460 | | |
1461 | | void copy_sizes(count_t offset, count_t n, size_t init, size_t* sizes) |
1462 | 18.7M | { |
1463 | 18.7M | auto e = sizes + n; |
1464 | 18.7M | auto prev = size_before(offset); |
1465 | 18.7M | auto these = relaxed_->d.sizes + offset; |
1466 | 85.7M | for (; sizes != e; ++sizes, ++these) { |
1467 | 67.0M | auto this_size = *these; |
1468 | 67.0M | init = *sizes = init + (this_size - prev); |
1469 | 67.0M | assert(init); |
1470 | 67.0M | prev = this_size; |
1471 | 67.0M | } |
1472 | 18.7M | } |
1473 | | |
1474 | | template <typename Visitor, typename... Args> |
1475 | | void each(Visitor v, Args&&... args) |
1476 | 31.1M | { |
1477 | 31.1M | each_left(v, relaxed_->d.count, args...); |
1478 | 31.1M | } |
1479 | | |
1480 | | template <typename Visitor, typename... Args> |
1481 | | bool each_pred(Visitor v, Args&&... args) |
1482 | 141k | { |
1483 | 141k | auto p = node_->inner(); |
1484 | 141k | auto s = size_t{}; |
1485 | 141k | auto n = count(); |
1486 | 141k | if (shift_ == BL) { |
1487 | 1.02M | for (auto i = count_t{0}; i < n; ++i) { |
1488 | 900k | IMMER_PREFETCH(p + i + 1); |
1489 | 900k | if (!make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1490 | 900k | .visit(v, args...)) |
1491 | 819 | return false; |
1492 | 899k | s = relaxed_->d.sizes[i]; |
1493 | 899k | } |
1494 | 123k | } else { |
1495 | 18.2k | auto ss = shift_ - B; |
1496 | 140k | for (auto i = count_t{0}; i < n; ++i) { |
1497 | 122k | if (!visit_maybe_relaxed_sub( |
1498 | 122k | p[i], ss, relaxed_->d.sizes[i] - s, v, args...)) |
1499 | 539 | return false; |
1500 | 121k | s = relaxed_->d.sizes[i]; |
1501 | 121k | } |
1502 | 18.2k | } |
1503 | 140k | return true; |
1504 | 141k | } |
1505 | | |
1506 | | template <typename Visitor, typename... Args> |
1507 | | bool each_pred_i(Visitor v, count_t i, count_t n, Args&&... args) |
1508 | | { |
1509 | | if (shift_ == BL) { |
1510 | | auto p = node_->inner(); |
1511 | | auto s = i > 0 ? relaxed_->d.sizes[i - 1] : 0; |
1512 | | for (; i < n; ++i) { |
1513 | | IMMER_PREFETCH(p + i + 1); |
1514 | | if (!make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1515 | | .visit(v, args...)) |
1516 | | return false; |
1517 | | s = relaxed_->d.sizes[i]; |
1518 | | } |
1519 | | } else { |
1520 | | auto p = node_->inner(); |
1521 | | auto s = i > 0 ? relaxed_->d.sizes[i - 1] : 0; |
1522 | | auto ss = shift_ - B; |
1523 | | for (; i < n; ++i) { |
1524 | | if (!visit_maybe_relaxed_sub( |
1525 | | p[i], ss, relaxed_->d.sizes[i] - s, v, args...)) |
1526 | | return false; |
1527 | | s = relaxed_->d.sizes[i]; |
1528 | | } |
1529 | | } |
1530 | | return true; |
1531 | | } |
1532 | | |
1533 | | template <typename Visitor, typename... Args> |
1534 | | bool each_pred_left(Visitor v, count_t n, Args&&... args) |
1535 | | { |
1536 | | auto p = node_->inner(); |
1537 | | auto s = size_t{}; |
1538 | | if (shift_ == BL) { |
1539 | | for (auto i = count_t{0}; i < n; ++i) { |
1540 | | IMMER_PREFETCH(p + i + 1); |
1541 | | if (!make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1542 | | .visit(v, args...)) |
1543 | | return false; |
1544 | | s = relaxed_->d.sizes[i]; |
1545 | | } |
1546 | | } else { |
1547 | | auto ss = shift_ - B; |
1548 | | for (auto i = count_t{0}; i < n; ++i) { |
1549 | | if (!visit_maybe_relaxed_sub( |
1550 | | p[i], ss, relaxed_->d.sizes[i] - s, v, args...)) |
1551 | | return false; |
1552 | | s = relaxed_->d.sizes[i]; |
1553 | | } |
1554 | | } |
1555 | | return true; |
1556 | | } |
1557 | | |
1558 | | template <typename Visitor, typename... Args> |
1559 | | bool each_pred_right(Visitor v, count_t start, Args&&... args) |
1560 | | { |
1561 | | assert(start > 0); |
1562 | | assert(start <= relaxed_->d.count); |
1563 | | auto s = relaxed_->d.sizes[start - 1]; |
1564 | | auto p = node_->inner(); |
1565 | | if (shift_ == BL) { |
1566 | | for (auto i = start; i < relaxed_->d.count; ++i) { |
1567 | | IMMER_PREFETCH(p + i + 1); |
1568 | | if (!make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1569 | | .visit(v, args...)) |
1570 | | return false; |
1571 | | s = relaxed_->d.sizes[i]; |
1572 | | } |
1573 | | } else { |
1574 | | auto ss = shift_ - B; |
1575 | | for (auto i = start; i < relaxed_->d.count; ++i) { |
1576 | | if (!visit_maybe_relaxed_sub( |
1577 | | p[i], ss, relaxed_->d.sizes[i] - s, v, args...)) |
1578 | | return false; |
1579 | | s = relaxed_->d.sizes[i]; |
1580 | | } |
1581 | | } |
1582 | | return true; |
1583 | | } |
1584 | | |
1585 | | template <typename Visitor, typename... Args> |
1586 | | void each_i(Visitor v, count_t i, count_t n, Args&&... args) |
1587 | | { |
1588 | | if (shift_ == BL) { |
1589 | | auto p = node_->inner(); |
1590 | | auto s = i > 0 ? relaxed_->d.sizes[i - 1] : 0; |
1591 | | for (; i < n; ++i) { |
1592 | | IMMER_PREFETCH(p + i + 1); |
1593 | | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1594 | | .visit(v, args...); |
1595 | | s = relaxed_->d.sizes[i]; |
1596 | | } |
1597 | | } else { |
1598 | | auto p = node_->inner(); |
1599 | | auto s = i > 0 ? relaxed_->d.sizes[i - 1] : 0; |
1600 | | auto ss = shift_ - B; |
1601 | | for (; i < n; ++i) { |
1602 | | visit_maybe_relaxed_sub( |
1603 | | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); |
1604 | | s = relaxed_->d.sizes[i]; |
1605 | | } |
1606 | | } |
1607 | | } |
1608 | | |
1609 | | template <typename Visitor, typename... Args> |
1610 | | void each_sub(Visitor v, Args&&... args) |
1611 | | { |
1612 | | each_left(v, relaxed_->d.count, args...); |
1613 | | } |
1614 | | |
1615 | | template <typename Visitor, typename... Args> |
1616 | | void each_left_sub(Visitor v, Args&&... args) |
1617 | 21.3M | { |
1618 | 21.3M | each_left(v, relaxed_->d.count - 1, args...); |
1619 | 21.3M | } void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1617 | 10.6M | { | 1618 | 10.6M | each_left(v, relaxed_->d.count - 1, args...); | 1619 | 10.6M | } |
void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1617 | 10.6M | { | 1618 | 10.6M | each_left(v, relaxed_->d.count - 1, args...); | 1619 | 10.6M | } |
Unexecuted instantiation: void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1620 | | |
1621 | | template <typename Visitor, typename... Args> |
1622 | | void each_left(Visitor v, count_t n, Args&&... args) |
1623 | 52.6M | { |
1624 | 52.6M | auto p = node_->inner(); |
1625 | 52.6M | auto s = size_t{}; |
1626 | 52.6M | if (shift_ == BL) { |
1627 | 55.8M | for (auto i = count_t{0}; i < n; ++i) { |
1628 | 48.9M | IMMER_PREFETCH(p + i + 1); |
1629 | 48.9M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1630 | 48.9M | .visit(v, args...); |
1631 | 48.9M | s = relaxed_->d.sizes[i]; |
1632 | 48.9M | assert(s); |
1633 | 48.9M | } |
1634 | 45.7M | } else { |
1635 | 45.7M | auto ss = shift_ - B; |
1636 | 268M | for (auto i = count_t{0}; i < n; ++i) { |
1637 | 222M | visit_maybe_relaxed_sub( |
1638 | 222M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); |
1639 | 222M | s = relaxed_->d.sizes[i]; |
1640 | 222M | assert(s); |
1641 | 222M | } |
1642 | 45.7M | } |
1643 | 52.6M | } void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor, unsigned int) Line | Count | Source | 1623 | 31.3M | { | 1624 | 31.3M | auto p = node_->inner(); | 1625 | 31.3M | auto s = size_t{}; | 1626 | 31.3M | if (shift_ == BL) { | 1627 | 52.6M | for (auto i = count_t{0}; i < n; ++i) { | 1628 | 46.1M | IMMER_PREFETCH(p + i + 1); | 1629 | 46.1M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) | 1630 | 46.1M | .visit(v, args...); | 1631 | 46.1M | s = relaxed_->d.sizes[i]; | 1632 | 46.1M | assert(s); | 1633 | 46.1M | } | 1634 | 24.8M | } else { | 1635 | 24.8M | auto ss = shift_ - B; | 1636 | 175M | for (auto i = count_t{0}; i < n; ++i) { | 1637 | 150M | visit_maybe_relaxed_sub( | 1638 | 150M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); | 1639 | 150M | s = relaxed_->d.sizes[i]; | 1640 | | assert(s); | 1641 | 150M | } | 1642 | 24.8M | } | 1643 | 31.3M | } |
void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, unsigned int, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1623 | 10.6M | { | 1624 | 10.6M | auto p = node_->inner(); | 1625 | 10.6M | auto s = size_t{}; | 1626 | 10.6M | if (shift_ == BL) { | 1627 | 1.62M | for (auto i = count_t{0}; i < n; ++i) { | 1628 | 1.38M | IMMER_PREFETCH(p + i + 1); | 1629 | 1.38M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) | 1630 | 1.38M | .visit(v, args...); | 1631 | 1.38M | s = relaxed_->d.sizes[i]; | 1632 | 1.38M | assert(s); | 1633 | 1.38M | } | 1634 | 10.4M | } else { | 1635 | 10.4M | auto ss = shift_ - B; | 1636 | 46.4M | for (auto i = count_t{0}; i < n; ++i) { | 1637 | 36.0M | visit_maybe_relaxed_sub( | 1638 | 36.0M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); | 1639 | 36.0M | s = relaxed_->d.sizes[i]; | 1640 | | assert(s); | 1641 | 36.0M | } | 1642 | 10.4M | } | 1643 | 10.6M | } |
void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, unsigned int, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1623 | 10.6M | { | 1624 | 10.6M | auto p = node_->inner(); | 1625 | 10.6M | auto s = size_t{}; | 1626 | 10.6M | if (shift_ == BL) { | 1627 | 1.62M | for (auto i = count_t{0}; i < n; ++i) { | 1628 | 1.38M | IMMER_PREFETCH(p + i + 1); | 1629 | 1.38M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) | 1630 | 1.38M | .visit(v, args...); | 1631 | 1.38M | s = relaxed_->d.sizes[i]; | 1632 | 1.38M | assert(s); | 1633 | 1.38M | } | 1634 | 10.4M | } else { | 1635 | 10.4M | auto ss = shift_ - B; | 1636 | 46.4M | for (auto i = count_t{0}; i < n; ++i) { | 1637 | 36.0M | visit_maybe_relaxed_sub( | 1638 | 36.0M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); | 1639 | 36.0M | s = relaxed_->d.sizes[i]; | 1640 | | assert(s); | 1641 | 36.0M | } | 1642 | 10.4M | } | 1643 | 10.6M | } |
Unexecuted instantiation: void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, unsigned int, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1644 | | |
1645 | | template <typename Visitor, typename... Args> |
1646 | | void each_right_sub(Visitor v, Args&&... args) |
1647 | 17.7M | { |
1648 | 17.7M | each_right(v, 1, std::forward<Args>(args)...); |
1649 | 17.7M | } void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1647 | 8.88M | { | 1648 | 8.88M | each_right(v, 1, std::forward<Args>(args)...); | 1649 | 8.88M | } |
void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1647 | 8.88M | { | 1648 | 8.88M | each_right(v, 1, std::forward<Args>(args)...); | 1649 | 8.88M | } |
Unexecuted instantiation: void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right_sub<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1650 | | |
1651 | | template <typename Visitor, typename... Args> |
1652 | | void each_right(Visitor v, count_t start, Args&&... args) |
1653 | 17.7M | { |
1654 | 17.7M | assert(start > 0); |
1655 | 17.7M | assert(start <= relaxed_->d.count); |
1656 | 17.7M | auto s = relaxed_->d.sizes[start - 1]; |
1657 | 17.7M | auto p = node_->inner(); |
1658 | 17.7M | if (shift_ == BL) { |
1659 | 6.65M | for (auto i = start; i < relaxed_->d.count; ++i) { |
1660 | 5.28M | IMMER_PREFETCH(p + i + 1); |
1661 | 5.28M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) |
1662 | 5.28M | .visit(v, args...); |
1663 | 5.28M | s = relaxed_->d.sizes[i]; |
1664 | 5.28M | assert(s); |
1665 | 5.28M | } |
1666 | 16.4M | } else { |
1667 | 16.4M | auto ss = shift_ - B; |
1668 | 117M | for (auto i = start; i < relaxed_->d.count; ++i) { |
1669 | 101M | visit_maybe_relaxed_sub( |
1670 | 101M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); |
1671 | 101M | s = relaxed_->d.sizes[i]; |
1672 | 101M | assert(s); |
1673 | 101M | } |
1674 | 16.4M | } |
1675 | 17.7M | } void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, unsigned int, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1653 | 8.88M | { | 1654 | 8.88M | assert(start > 0); | 1655 | 8.88M | assert(start <= relaxed_->d.count); | 1656 | 8.88M | auto s = relaxed_->d.sizes[start - 1]; | 1657 | 8.88M | auto p = node_->inner(); | 1658 | 8.88M | if (shift_ == BL) { | 1659 | 3.32M | for (auto i = start; i < relaxed_->d.count; ++i) { | 1660 | 2.63M | IMMER_PREFETCH(p + i + 1); | 1661 | 2.63M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) | 1662 | 2.63M | .visit(v, args...); | 1663 | 2.63M | s = relaxed_->d.sizes[i]; | 1664 | 2.63M | assert(s); | 1665 | 2.63M | } | 1666 | 8.19M | } else { | 1667 | 8.19M | auto ss = shift_ - B; | 1668 | 58.8M | for (auto i = start; i < relaxed_->d.count; ++i) { | 1669 | 50.6M | visit_maybe_relaxed_sub( | 1670 | 50.6M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); | 1671 | 50.6M | s = relaxed_->d.sizes[i]; | 1672 | | assert(s); | 1673 | 50.6M | } | 1674 | 8.19M | } | 1675 | 8.88M | } |
void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, unsigned int, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1653 | 8.88M | { | 1654 | 8.88M | assert(start > 0); | 1655 | 8.88M | assert(start <= relaxed_->d.count); | 1656 | 8.88M | auto s = relaxed_->d.sizes[start - 1]; | 1657 | 8.88M | auto p = node_->inner(); | 1658 | 8.88M | if (shift_ == BL) { | 1659 | 3.32M | for (auto i = start; i < relaxed_->d.count; ++i) { | 1660 | 2.63M | IMMER_PREFETCH(p + i + 1); | 1661 | 2.63M | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) | 1662 | 2.63M | .visit(v, args...); | 1663 | 2.63M | s = relaxed_->d.sizes[i]; | 1664 | 2.63M | assert(s); | 1665 | 2.63M | } | 1666 | 8.19M | } else { | 1667 | 8.19M | auto ss = shift_ - B; | 1668 | 58.8M | for (auto i = start; i < relaxed_->d.count; ++i) { | 1669 | 50.6M | visit_maybe_relaxed_sub( | 1670 | 50.6M | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); | 1671 | 50.6M | s = relaxed_->d.sizes[i]; | 1672 | | assert(s); | 1673 | 50.6M | } | 1674 | 8.19M | } | 1675 | 8.88M | } |
void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor, unsigned int) Line | Count | Source | 1653 | 23.3k | { | 1654 | 23.3k | assert(start > 0); | 1655 | 23.3k | assert(start <= relaxed_->d.count); | 1656 | 23.3k | auto s = relaxed_->d.sizes[start - 1]; | 1657 | 23.3k | auto p = node_->inner(); | 1658 | 23.3k | if (shift_ == BL) { | 1659 | 9.01k | for (auto i = start; i < relaxed_->d.count; ++i) { | 1660 | 6.33k | IMMER_PREFETCH(p + i + 1); | 1661 | 6.33k | make_leaf_sub_pos(p[i], relaxed_->d.sizes[i] - s) | 1662 | 6.33k | .visit(v, args...); | 1663 | 6.33k | s = relaxed_->d.sizes[i]; | 1664 | 6.33k | assert(s); | 1665 | 6.33k | } | 1666 | 20.6k | } else { | 1667 | 20.6k | auto ss = shift_ - B; | 1668 | 109k | for (auto i = start; i < relaxed_->d.count; ++i) { | 1669 | 88.4k | visit_maybe_relaxed_sub( | 1670 | 88.4k | p[i], ss, relaxed_->d.sizes[i] - s, v, args...); | 1671 | 88.4k | s = relaxed_->d.sizes[i]; | 1672 | | assert(s); | 1673 | 88.4k | } | 1674 | 20.6k | } | 1675 | 23.3k | } |
Unexecuted instantiation: void immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_right<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, unsigned int, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1676 | | |
1677 | | template <typename Visitor, typename... Args> |
1678 | | decltype(auto) towards(Visitor v, size_t idx, Args&&... args) |
1679 | 4.51M | { |
1680 | 4.51M | return towards_oh(v, idx, subindex(idx), args...); |
1681 | 4.51M | } |
1682 | | |
1683 | | template <typename Visitor, typename... Args> |
1684 | | decltype(auto) |
1685 | | towards_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
1686 | 4.95M | { |
1687 | 4.95M | assert(offset_hint == index(idx)); |
1688 | 4.95M | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; |
1689 | 4.95M | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); |
1690 | 4.95M | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1686 | 234k | { | 1687 | 234k | assert(offset_hint == index(idx)); | 1688 | 234k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 234k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 234k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Line | Count | Source | 1686 | 22.3k | { | 1687 | 22.3k | assert(offset_hint == index(idx)); | 1688 | 22.3k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 22.3k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 22.3k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 1686 | 10.7k | { | 1687 | 10.7k | assert(offset_hint == index(idx)); | 1688 | 10.7k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 10.7k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 10.7k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 1686 | 125k | { | 1687 | 125k | assert(offset_hint == index(idx)); | 1688 | 125k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 125k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 125k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1686 | 14.1k | { | 1687 | 14.1k | assert(offset_hint == index(idx)); | 1688 | 14.1k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 14.1k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 14.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1686 | 13.0k | { | 1687 | 13.0k | assert(offset_hint == index(idx)); | 1688 | 13.0k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 13.0k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 13.0k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1686 | 9.19k | { | 1687 | 9.19k | assert(offset_hint == index(idx)); | 1688 | 9.19k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 9.19k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 9.19k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1686 | 11.6k | { | 1687 | 11.6k | assert(offset_hint == index(idx)); | 1688 | 11.6k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 11.6k | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 11.6k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh<immer::detail::rbts::region_for_visitor<int>>(immer::detail::rbts::region_for_visitor<int>, unsigned long, unsigned int) Line | Count | Source | 1686 | 4.51M | { | 1687 | 4.51M | assert(offset_hint == index(idx)); | 1688 | 4.51M | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1689 | 4.51M | return towards_oh_sbh(v, idx, offset_hint, left_size, args...); | 1690 | 4.51M | } |
|
1691 | | |
1692 | | template <typename Visitor, typename... Args> |
1693 | | decltype(auto) towards_oh_sbh(Visitor v, |
1694 | | size_t idx, |
1695 | | count_t offset_hint, |
1696 | | size_t left_size_hint, |
1697 | | Args&&... args) |
1698 | 4.95M | { |
1699 | 4.95M | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); |
1700 | 4.95M | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned long, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1698 | 234k | { | 1699 | 234k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 234k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1698 | 22.3k | { | 1699 | 22.3k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 22.3k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1698 | 10.7k | { | 1699 | 10.7k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 10.7k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1698 | 125k | { | 1699 | 125k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 125k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1698 | 14.1k | { | 1699 | 14.1k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 14.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1698 | 13.0k | { | 1699 | 13.0k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 13.0k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1698 | 9.19k | { | 1699 | 9.19k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 9.19k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1698 | 11.6k | { | 1699 | 11.6k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 11.6k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_oh_sbh<immer::detail::rbts::region_for_visitor<int>>(immer::detail::rbts::region_for_visitor<int>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1698 | 4.51M | { | 1699 | 4.51M | return towards_sub_oh_sbh(v, idx, offset_hint, left_size_hint, args...); | 1700 | 4.51M | } |
|
1701 | | |
1702 | | template <typename Visitor, typename... Args> |
1703 | | decltype(auto) |
1704 | | towards_sub_oh(Visitor v, size_t idx, count_t offset_hint, Args&&... args) |
1705 | 438k | { |
1706 | 438k | assert(offset_hint == index(idx)); |
1707 | 438k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; |
1708 | 438k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); |
1709 | 438k | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int) Line | Count | Source | 1705 | 3.68k | { | 1706 | 3.68k | assert(offset_hint == index(idx)); | 1707 | 3.68k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1708 | 3.68k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); | 1709 | 3.68k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int) Line | Count | Source | 1705 | 124k | { | 1706 | 124k | assert(offset_hint == index(idx)); | 1707 | 124k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1708 | 124k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); | 1709 | 124k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1705 | 1.90k | { | 1706 | 1.90k | assert(offset_hint == index(idx)); | 1707 | 1.90k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1708 | 1.90k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); | 1709 | 1.90k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1705 | 3.32k | { | 1706 | 3.32k | assert(offset_hint == index(idx)); | 1707 | 3.32k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1708 | 3.32k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); | 1709 | 3.32k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1705 | 207k | { | 1706 | 207k | assert(offset_hint == index(idx)); | 1707 | 207k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1708 | 207k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); | 1709 | 207k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1705 | 98.8k | { | 1706 | 98.8k | assert(offset_hint == index(idx)); | 1707 | 98.8k | auto left_size = offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0; | 1708 | 98.8k | return towards_sub_oh_sbh(v, idx, offset_hint, left_size, args...); | 1709 | 98.8k | } |
|
1710 | | |
1711 | | template <typename Visitor, typename... Args> |
1712 | | decltype(auto) towards_sub_oh_sbh(Visitor v, |
1713 | | size_t idx, |
1714 | | count_t offset_hint, |
1715 | | size_t left_size_hint, |
1716 | | Args&&... args) |
1717 | 5.39M | { |
1718 | 5.39M | assert(offset_hint == index(idx)); |
1719 | 5.39M | assert(left_size_hint == |
1720 | 5.39M | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); |
1721 | 5.39M | auto child = node_->inner()[offset_hint]; |
1722 | 5.39M | auto is_leaf = shift_ == BL; |
1723 | 5.39M | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; |
1724 | 5.39M | auto next_idx = idx - left_size_hint; |
1725 | 5.39M | return is_leaf |
1726 | 5.39M | ? make_leaf_sub_pos(child, next_size) |
1727 | 1.14M | .visit(v, next_idx, args...) |
1728 | 5.39M | : visit_maybe_relaxed_sub( |
1729 | 4.24M | child, shift_ - B, next_size, v, next_idx, args...); |
1730 | 5.39M | } flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned long, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1717 | 234k | { | 1718 | 234k | assert(offset_hint == index(idx)); | 1719 | 234k | assert(left_size_hint == | 1720 | 234k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 234k | auto child = node_->inner()[offset_hint]; | 1722 | 234k | auto is_leaf = shift_ == BL; | 1723 | 234k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 234k | auto next_idx = idx - left_size_hint; | 1725 | 234k | return is_leaf | 1726 | 234k | ? make_leaf_sub_pos(child, next_size) | 1727 | 61.0k | .visit(v, next_idx, args...) | 1728 | 234k | : visit_maybe_relaxed_sub( | 1729 | 173k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 234k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1717 | 22.3k | { | 1718 | 22.3k | assert(offset_hint == index(idx)); | 1719 | 22.3k | assert(left_size_hint == | 1720 | 22.3k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 22.3k | auto child = node_->inner()[offset_hint]; | 1722 | 22.3k | auto is_leaf = shift_ == BL; | 1723 | 22.3k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 22.3k | auto next_idx = idx - left_size_hint; | 1725 | 22.3k | return is_leaf | 1726 | 22.3k | ? make_leaf_sub_pos(child, next_size) | 1727 | 1.64k | .visit(v, next_idx, args...) | 1728 | 22.3k | : visit_maybe_relaxed_sub( | 1729 | 20.7k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 22.3k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1717 | 10.7k | { | 1718 | 10.7k | assert(offset_hint == index(idx)); | 1719 | 10.7k | assert(left_size_hint == | 1720 | 10.7k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 10.7k | auto child = node_->inner()[offset_hint]; | 1722 | 10.7k | auto is_leaf = shift_ == BL; | 1723 | 10.7k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 10.7k | auto next_idx = idx - left_size_hint; | 1725 | 10.7k | return is_leaf | 1726 | 10.7k | ? make_leaf_sub_pos(child, next_size) | 1727 | 4.16k | .visit(v, next_idx, args...) | 1728 | 10.7k | : visit_maybe_relaxed_sub( | 1729 | 6.57k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 10.7k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1717 | 3.68k | { | 1718 | 3.68k | assert(offset_hint == index(idx)); | 1719 | 3.68k | assert(left_size_hint == | 1720 | 3.68k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 3.68k | auto child = node_->inner()[offset_hint]; | 1722 | 3.68k | auto is_leaf = shift_ == BL; | 1723 | 3.68k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 3.68k | auto next_idx = idx - left_size_hint; | 1725 | 3.68k | return is_leaf | 1726 | 3.68k | ? make_leaf_sub_pos(child, next_size) | 1727 | 0 | .visit(v, next_idx, args...) | 1728 | 3.68k | : visit_maybe_relaxed_sub( | 1729 | 3.68k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 3.68k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1717 | 124k | { | 1718 | 124k | assert(offset_hint == index(idx)); | 1719 | 124k | assert(left_size_hint == | 1720 | 124k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 124k | auto child = node_->inner()[offset_hint]; | 1722 | 124k | auto is_leaf = shift_ == BL; | 1723 | 124k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 124k | auto next_idx = idx - left_size_hint; | 1725 | 124k | return is_leaf | 1726 | 124k | ? make_leaf_sub_pos(child, next_size) | 1727 | 20.7k | .visit(v, next_idx, args...) | 1728 | 124k | : visit_maybe_relaxed_sub( | 1729 | 103k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 124k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1717 | 125k | { | 1718 | 125k | assert(offset_hint == index(idx)); | 1719 | 125k | assert(left_size_hint == | 1720 | 125k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 125k | auto child = node_->inner()[offset_hint]; | 1722 | 125k | auto is_leaf = shift_ == BL; | 1723 | 125k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 125k | auto next_idx = idx - left_size_hint; | 1725 | 125k | return is_leaf | 1726 | 125k | ? make_leaf_sub_pos(child, next_size) | 1727 | 18.9k | .visit(v, next_idx, args...) | 1728 | 125k | : visit_maybe_relaxed_sub( | 1729 | 106k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 125k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 14.1k | { | 1718 | 14.1k | assert(offset_hint == index(idx)); | 1719 | 14.1k | assert(left_size_hint == | 1720 | 14.1k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 14.1k | auto child = node_->inner()[offset_hint]; | 1722 | 14.1k | auto is_leaf = shift_ == BL; | 1723 | 14.1k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 14.1k | auto next_idx = idx - left_size_hint; | 1725 | 14.1k | return is_leaf | 1726 | 14.1k | ? make_leaf_sub_pos(child, next_size) | 1727 | 876 | .visit(v, next_idx, args...) | 1728 | 14.1k | : visit_maybe_relaxed_sub( | 1729 | 13.2k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 14.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 13.0k | { | 1718 | 13.0k | assert(offset_hint == index(idx)); | 1719 | 13.0k | assert(left_size_hint == | 1720 | 13.0k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 13.0k | auto child = node_->inner()[offset_hint]; | 1722 | 13.0k | auto is_leaf = shift_ == BL; | 1723 | 13.0k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 13.0k | auto next_idx = idx - left_size_hint; | 1725 | 13.0k | return is_leaf | 1726 | 13.0k | ? make_leaf_sub_pos(child, next_size) | 1727 | 729 | .visit(v, next_idx, args...) | 1728 | 13.0k | : visit_maybe_relaxed_sub( | 1729 | 12.3k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 13.0k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 9.19k | { | 1718 | 9.19k | assert(offset_hint == index(idx)); | 1719 | 9.19k | assert(left_size_hint == | 1720 | 9.19k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 9.19k | auto child = node_->inner()[offset_hint]; | 1722 | 9.19k | auto is_leaf = shift_ == BL; | 1723 | 9.19k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 9.19k | auto next_idx = idx - left_size_hint; | 1725 | 9.19k | return is_leaf | 1726 | 9.19k | ? make_leaf_sub_pos(child, next_size) | 1727 | 1.80k | .visit(v, next_idx, args...) | 1728 | 9.19k | : visit_maybe_relaxed_sub( | 1729 | 7.38k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 9.19k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 11.6k | { | 1718 | 11.6k | assert(offset_hint == index(idx)); | 1719 | 11.6k | assert(left_size_hint == | 1720 | 11.6k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 11.6k | auto child = node_->inner()[offset_hint]; | 1722 | 11.6k | auto is_leaf = shift_ == BL; | 1723 | 11.6k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 11.6k | auto next_idx = idx - left_size_hint; | 1725 | 11.6k | return is_leaf | 1726 | 11.6k | ? make_leaf_sub_pos(child, next_size) | 1727 | 4.54k | .visit(v, next_idx, args...) | 1728 | 11.6k | : visit_maybe_relaxed_sub( | 1729 | 7.13k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 11.6k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 1.90k | { | 1718 | 1.90k | assert(offset_hint == index(idx)); | 1719 | 1.90k | assert(left_size_hint == | 1720 | 1.90k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 1.90k | auto child = node_->inner()[offset_hint]; | 1722 | 1.90k | auto is_leaf = shift_ == BL; | 1723 | 1.90k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 1.90k | auto next_idx = idx - left_size_hint; | 1725 | 1.90k | return is_leaf | 1726 | 1.90k | ? make_leaf_sub_pos(child, next_size) | 1727 | 0 | .visit(v, next_idx, args...) | 1728 | 1.90k | : visit_maybe_relaxed_sub( | 1729 | 1.90k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 1.90k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 3.32k | { | 1718 | 3.32k | assert(offset_hint == index(idx)); | 1719 | 3.32k | assert(left_size_hint == | 1720 | 3.32k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 3.32k | auto child = node_->inner()[offset_hint]; | 1722 | 3.32k | auto is_leaf = shift_ == BL; | 1723 | 3.32k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 3.32k | auto next_idx = idx - left_size_hint; | 1725 | 3.32k | return is_leaf | 1726 | 3.32k | ? make_leaf_sub_pos(child, next_size) | 1727 | 0 | .visit(v, next_idx, args...) | 1728 | 3.32k | : visit_maybe_relaxed_sub( | 1729 | 3.32k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 3.32k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 207k | { | 1718 | 207k | assert(offset_hint == index(idx)); | 1719 | 207k | assert(left_size_hint == | 1720 | 207k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 207k | auto child = node_->inner()[offset_hint]; | 1722 | 207k | auto is_leaf = shift_ == BL; | 1723 | 207k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 207k | auto next_idx = idx - left_size_hint; | 1725 | 207k | return is_leaf | 1726 | 207k | ? make_leaf_sub_pos(child, next_size) | 1727 | 4.19k | .visit(v, next_idx, args...) | 1728 | 207k | : visit_maybe_relaxed_sub( | 1729 | 203k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 207k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1717 | 98.8k | { | 1718 | 98.8k | assert(offset_hint == index(idx)); | 1719 | 98.8k | assert(left_size_hint == | 1720 | 98.8k | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 98.8k | auto child = node_->inner()[offset_hint]; | 1722 | 98.8k | auto is_leaf = shift_ == BL; | 1723 | 98.8k | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 98.8k | auto next_idx = idx - left_size_hint; | 1725 | 98.8k | return is_leaf | 1726 | 98.8k | ? make_leaf_sub_pos(child, next_size) | 1727 | 46.4k | .visit(v, next_idx, args...) | 1728 | 98.8k | : visit_maybe_relaxed_sub( | 1729 | 52.3k | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 98.8k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::towards_sub_oh_sbh<immer::detail::rbts::region_for_visitor<int>>(immer::detail::rbts::region_for_visitor<int>, unsigned long, unsigned int, unsigned long) Line | Count | Source | 1717 | 4.51M | { | 1718 | 4.51M | assert(offset_hint == index(idx)); | 1719 | 4.51M | assert(left_size_hint == | 1720 | 4.51M | (offset_hint ? relaxed_->d.sizes[offset_hint - 1] : 0)); | 1721 | 4.51M | auto child = node_->inner()[offset_hint]; | 1722 | 4.51M | auto is_leaf = shift_ == BL; | 1723 | 4.51M | auto next_size = relaxed_->d.sizes[offset_hint] - left_size_hint; | 1724 | 4.51M | auto next_idx = idx - left_size_hint; | 1725 | 4.51M | return is_leaf | 1726 | 4.51M | ? make_leaf_sub_pos(child, next_size) | 1727 | 980k | .visit(v, next_idx, args...) | 1728 | 4.51M | : visit_maybe_relaxed_sub( | 1729 | 3.53M | child, shift_ - B, next_size, v, next_idx, args...); | 1730 | 4.51M | } |
|
1731 | | |
1732 | | template <typename Visitor, typename... Args> |
1733 | | decltype(auto) last_oh_csh(Visitor v, |
1734 | | count_t offset_hint, |
1735 | | size_t child_size_hint, |
1736 | | Args&&... args) |
1737 | 356k | { |
1738 | 356k | assert(offset_hint == count() - 1); |
1739 | 356k | assert(child_size_hint == size(offset_hint)); |
1740 | 356k | auto child = node_->inner()[offset_hint]; |
1741 | 356k | auto is_leaf = shift_ == BL; |
1742 | 356k | return is_leaf |
1743 | 356k | ? make_leaf_sub_pos(child, child_size_hint).visit(v, args...) |
1744 | 356k | : visit_maybe_relaxed_sub( |
1745 | 356k | child, shift_ - B, child_size_hint, v, args...); |
1746 | 356k | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh_csh<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned int, unsigned long, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1737 | 180k | { | 1738 | 180k | assert(offset_hint == count() - 1); | 1739 | 180k | assert(child_size_hint == size(offset_hint)); | 1740 | 180k | auto child = node_->inner()[offset_hint]; | 1741 | 180k | auto is_leaf = shift_ == BL; | 1742 | 180k | return is_leaf | 1743 | 180k | ? make_leaf_sub_pos(child, child_size_hint).visit(v, args...) | 1744 | 180k | : visit_maybe_relaxed_sub( | 1745 | 180k | child, shift_ - B, child_size_hint, v, args...); | 1746 | 180k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh_csh<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1737 | 166k | { | 1738 | 166k | assert(offset_hint == count() - 1); | 1739 | 166k | assert(child_size_hint == size(offset_hint)); | 1740 | 166k | auto child = node_->inner()[offset_hint]; | 1741 | 166k | auto is_leaf = shift_ == BL; | 1742 | 166k | return is_leaf | 1743 | 166k | ? make_leaf_sub_pos(child, child_size_hint).visit(v, args...) | 1744 | 166k | : visit_maybe_relaxed_sub( | 1745 | 166k | child, shift_ - B, child_size_hint, v, args...); | 1746 | 166k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_oh_csh<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned int, unsigned long, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1737 | 8.54k | { | 1738 | 8.54k | assert(offset_hint == count() - 1); | 1739 | 8.54k | assert(child_size_hint == size(offset_hint)); | 1740 | 8.54k | auto child = node_->inner()[offset_hint]; | 1741 | 8.54k | auto is_leaf = shift_ == BL; | 1742 | 8.54k | return is_leaf | 1743 | 8.54k | ? make_leaf_sub_pos(child, child_size_hint).visit(v, args...) | 1744 | 8.54k | : visit_maybe_relaxed_sub( | 1745 | 8.54k | child, shift_ - B, child_size_hint, v, args...); | 1746 | 8.54k | } |
|
1747 | | |
1748 | | template <typename Visitor, typename... Args> |
1749 | | decltype(auto) last_sub(Visitor v, Args&&... args) |
1750 | 10.6M | { |
1751 | 10.6M | auto offset = relaxed_->d.count - 1; |
1752 | 10.6M | auto child = node_->inner()[offset]; |
1753 | 10.6M | auto child_size = size(offset); |
1754 | 10.6M | auto is_leaf = shift_ == BL; |
1755 | 10.6M | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) |
1756 | 10.6M | : visit_maybe_relaxed_sub( |
1757 | 10.4M | child, shift_ - B, child_size, v, args...); |
1758 | 10.6M | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1750 | 2.96M | { | 1751 | 2.96M | auto offset = relaxed_->d.count - 1; | 1752 | 2.96M | auto child = node_->inner()[offset]; | 1753 | 2.96M | auto child_size = size(offset); | 1754 | 2.96M | auto is_leaf = shift_ == BL; | 1755 | 2.96M | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1756 | 2.96M | : visit_maybe_relaxed_sub( | 1757 | 2.96M | child, shift_ - B, child_size, v, args...); | 1758 | 2.96M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1750 | 11.8k | { | 1751 | 11.8k | auto offset = relaxed_->d.count - 1; | 1752 | 11.8k | auto child = node_->inner()[offset]; | 1753 | 11.8k | auto child_size = size(offset); | 1754 | 11.8k | auto is_leaf = shift_ == BL; | 1755 | 11.8k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1756 | 11.8k | : visit_maybe_relaxed_sub( | 1757 | 11.8k | child, shift_ - B, child_size, v, args...); | 1758 | 11.8k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1750 | 3.55k | { | 1751 | 3.55k | auto offset = relaxed_->d.count - 1; | 1752 | 3.55k | auto child = node_->inner()[offset]; | 1753 | 3.55k | auto child_size = size(offset); | 1754 | 3.55k | auto is_leaf = shift_ == BL; | 1755 | 3.55k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1756 | 3.55k | : visit_maybe_relaxed_sub( | 1757 | 1.95k | child, shift_ - B, child_size, v, args...); | 1758 | 3.55k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1750 | 7.28k | { | 1751 | 7.28k | auto offset = relaxed_->d.count - 1; | 1752 | 7.28k | auto child = node_->inner()[offset]; | 1753 | 7.28k | auto child_size = size(offset); | 1754 | 7.28k | auto is_leaf = shift_ == BL; | 1755 | 7.28k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1756 | 7.28k | : visit_maybe_relaxed_sub( | 1757 | 4.43k | child, shift_ - B, child_size, v, args...); | 1758 | 7.28k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1750 | 7.67M | { | 1751 | 7.67M | auto offset = relaxed_->d.count - 1; | 1752 | 7.67M | auto child = node_->inner()[offset]; | 1753 | 7.67M | auto child_size = size(offset); | 1754 | 7.67M | auto is_leaf = shift_ == BL; | 1755 | 7.67M | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1756 | 7.67M | : visit_maybe_relaxed_sub( | 1757 | 7.44M | child, shift_ - B, child_size, v, args...); | 1758 | 7.67M | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) |
1759 | | |
1760 | | template <typename Visitor, typename... Args> |
1761 | | decltype(auto) first_sub(Visitor v, Args&&... args) |
1762 | 8.19M | { |
1763 | 8.19M | auto child = node_->inner()[0]; |
1764 | 8.19M | auto child_size = relaxed_->d.sizes[0]; |
1765 | 8.19M | auto is_leaf = shift_ == BL; |
1766 | 8.19M | assert(child_size); |
1767 | 8.19M | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) |
1768 | 8.19M | : visit_maybe_relaxed_sub( |
1769 | 8.19M | child, shift_ - B, child_size, v, args...); |
1770 | 8.19M | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1762 | 16.9k | { | 1763 | 16.9k | auto child = node_->inner()[0]; | 1764 | 16.9k | auto child_size = relaxed_->d.sizes[0]; | 1765 | 16.9k | auto is_leaf = shift_ == BL; | 1766 | 16.9k | assert(child_size); | 1767 | 16.9k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1768 | 16.9k | : visit_maybe_relaxed_sub( | 1769 | 16.9k | child, shift_ - B, child_size, v, args...); | 1770 | 16.9k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1762 | 1.44M | { | 1763 | 1.44M | auto child = node_->inner()[0]; | 1764 | 1.44M | auto child_size = relaxed_->d.sizes[0]; | 1765 | 1.44M | auto is_leaf = shift_ == BL; | 1766 | 1.44M | assert(child_size); | 1767 | 1.44M | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1768 | 1.44M | : visit_maybe_relaxed_sub( | 1769 | 1.44M | child, shift_ - B, child_size, v, args...); | 1770 | 1.44M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1762 | 6.73M | { | 1763 | 6.73M | auto child = node_->inner()[0]; | 1764 | 6.73M | auto child_size = relaxed_->d.sizes[0]; | 1765 | 6.73M | auto is_leaf = shift_ == BL; | 1766 | 6.73M | assert(child_size); | 1767 | 6.73M | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1768 | 6.73M | : visit_maybe_relaxed_sub( | 1769 | 6.73M | child, shift_ - B, child_size, v, args...); | 1770 | 6.73M | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1771 | | |
1772 | | template <typename Visitor, typename... Args> |
1773 | | decltype(auto) first_sub_leaf(Visitor v, Args&&... args) |
1774 | 683k | { |
1775 | 683k | assert(shift_ == BL); |
1776 | 683k | auto child = node_->inner()[0]; |
1777 | 683k | auto child_size = relaxed_->d.sizes[0]; |
1778 | 683k | return make_leaf_sub_pos(child, child_size).visit(v, args...); |
1779 | 683k | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1774 | 4.83k | { | 1775 | 4.83k | assert(shift_ == BL); | 1776 | 4.83k | auto child = node_->inner()[0]; | 1777 | 4.83k | auto child_size = relaxed_->d.sizes[0]; | 1778 | 4.83k | return make_leaf_sub_pos(child, child_size).visit(v, args...); | 1779 | 4.83k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1774 | 678k | { | 1775 | 678k | assert(shift_ == BL); | 1776 | 678k | auto child = node_->inner()[0]; | 1777 | 678k | auto child_size = relaxed_->d.sizes[0]; | 1778 | 678k | return make_leaf_sub_pos(child, child_size).visit(v, args...); | 1779 | 678k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::first_sub_leaf<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1780 | | |
1781 | | template <typename Visitor, typename... Args> |
1782 | | decltype(auto) first_sub_inner(Visitor v, Args&&... args) |
1783 | 1.13k | { |
1784 | 1.13k | assert(shift_ > BL); |
1785 | 1.13k | auto child = node_->inner()[0]; |
1786 | 1.13k | auto child_size = relaxed_->d.sizes[0]; |
1787 | 1.13k | return visit_maybe_relaxed_sub( |
1788 | 1.13k | child, shift_ - B, child_size, v, args...); |
1789 | 1.13k | } |
1790 | | |
1791 | | template <typename Visitor, typename... Args> |
1792 | | decltype(auto) nth_sub(count_t offset, Visitor v, Args&&... args) |
1793 | 170k | { |
1794 | 170k | auto child = node_->inner()[offset]; |
1795 | 170k | auto child_size = size(offset); |
1796 | 170k | auto is_leaf = shift_ == BL; |
1797 | 170k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) |
1798 | 170k | : visit_maybe_relaxed_sub( |
1799 | 102k | child, shift_ - B, child_size, v, args...); |
1800 | 170k | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(unsigned int, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1793 | 54.0k | { | 1794 | 54.0k | auto child = node_->inner()[offset]; | 1795 | 54.0k | auto child_size = size(offset); | 1796 | 54.0k | auto is_leaf = shift_ == BL; | 1797 | 54.0k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 54.0k | : visit_maybe_relaxed_sub( | 1799 | 28.6k | child, shift_ - B, child_size, v, args...); | 1800 | 54.0k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1793 | 23.6k | { | 1794 | 23.6k | auto child = node_->inner()[offset]; | 1795 | 23.6k | auto child_size = size(offset); | 1796 | 23.6k | auto is_leaf = shift_ == BL; | 1797 | 23.6k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 23.6k | : visit_maybe_relaxed_sub( | 1799 | 23.6k | child, shift_ - B, child_size, v, args...); | 1800 | 23.6k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(unsigned int, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1793 | 8.22k | { | 1794 | 8.22k | auto child = node_->inner()[offset]; | 1795 | 8.22k | auto child_size = size(offset); | 1796 | 8.22k | auto is_leaf = shift_ == BL; | 1797 | 8.22k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 8.22k | : visit_maybe_relaxed_sub( | 1799 | 2.87k | child, shift_ - B, child_size, v, args...); | 1800 | 8.22k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(unsigned int, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1793 | 9.24k | { | 1794 | 9.24k | auto child = node_->inner()[offset]; | 1795 | 9.24k | auto child_size = size(offset); | 1796 | 9.24k | auto is_leaf = shift_ == BL; | 1797 | 9.24k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 9.24k | : visit_maybe_relaxed_sub( | 1799 | 1.50k | child, shift_ - B, child_size, v, args...); | 1800 | 9.24k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1793 | 4.98k | { | 1794 | 4.98k | auto child = node_->inner()[offset]; | 1795 | 4.98k | auto child_size = size(offset); | 1796 | 4.98k | auto is_leaf = shift_ == BL; | 1797 | 4.98k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 4.98k | : visit_maybe_relaxed_sub( | 1799 | 4.98k | child, shift_ - B, child_size, v, args...); | 1800 | 4.98k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1793 | 4.55k | { | 1794 | 4.55k | auto child = node_->inner()[offset]; | 1795 | 4.55k | auto child_size = size(offset); | 1796 | 4.55k | auto is_leaf = shift_ == BL; | 1797 | 4.55k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 4.55k | : visit_maybe_relaxed_sub( | 1799 | 4.55k | child, shift_ - B, child_size, v, args...); | 1800 | 4.55k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}>(unsigned int, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&&)Line | Count | Source | 1793 | 66.2k | { | 1794 | 66.2k | auto child = node_->inner()[offset]; | 1795 | 66.2k | auto child_size = size(offset); | 1796 | 66.2k | auto is_leaf = shift_ == BL; | 1797 | 66.2k | return is_leaf ? make_leaf_sub_pos(child, child_size).visit(v, args...) | 1798 | 66.2k | : visit_maybe_relaxed_sub( | 1799 | 36.5k | child, shift_ - B, child_size, v, args...); | 1800 | 66.2k | } |
|
1801 | | |
1802 | | template <typename Visitor, typename... Args> |
1803 | | decltype(auto) nth_sub_leaf(count_t offset, Visitor v, Args&&... args) |
1804 | 37.7k | { |
1805 | 37.7k | assert(shift_ == BL); |
1806 | 37.7k | auto child = node_->inner()[offset]; |
1807 | 37.7k | auto child_size = size(offset); |
1808 | 37.7k | return make_leaf_sub_pos(child, child_size).visit(v, args...); |
1809 | 37.7k | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub_leaf<immer::detail::rbts::equals_visitor, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::leaf_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1804 | 25.9k | { | 1805 | 25.9k | assert(shift_ == BL); | 1806 | 25.9k | auto child = node_->inner()[offset]; | 1807 | 25.9k | auto child_size = size(offset); | 1808 | 25.9k | return make_leaf_sub_pos(child, child_size).visit(v, args...); | 1809 | 25.9k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::nth_sub_leaf<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(unsigned int, immer::detail::rbts::equals_visitor, immer::detail::rbts::full_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1804 | 11.8k | { | 1805 | 11.8k | assert(shift_ == BL); | 1806 | 11.8k | auto child = node_->inner()[offset]; | 1807 | 11.8k | auto child_size = size(offset); | 1808 | 11.8k | return make_leaf_sub_pos(child, child_size).visit(v, args...); | 1809 | 11.8k | } |
|
1810 | | |
1811 | | template <typename Visitor, typename... Args> |
1812 | | decltype(auto) visit(Visitor v, Args&&... args) |
1813 | 386M | { |
1814 | 386M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); |
1815 | 386M | } decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_visitor>(immer::detail::rbts::dec_visitor) Line | Count | Source | 1813 | 156M | { | 1814 | 156M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 156M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1813 | 195k | { | 1814 | 195k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 195k | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1813 | 234k | { | 1814 | 234k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 234k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1813 | 29.4k | { | 1814 | 29.4k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 29.4k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1813 | 3.67k | { | 1814 | 3.67k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 3.67k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1813 | 26.1k | { | 1814 | 26.1k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 26.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1813 | 101k | { | 1814 | 101k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 101k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 5.11k | { | 1814 | 5.11k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 5.11k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1813 | 102M | { | 1814 | 102M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 102M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 102M | { | 1814 | 102M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 102M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 16.6k | { | 1814 | 16.6k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 16.6k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Line | Count | Source | 1813 | 982k | { | 1814 | 982k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 982k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 975k | { | 1814 | 975k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 975k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 2.96M | { | 1814 | 2.96M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 2.96M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 1.14M | { | 1814 | 1.14M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.14M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 6.73M | { | 1814 | 6.73M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 6.73M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 11.4k | { | 1814 | 11.4k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 11.4k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 1.73k | { | 1814 | 1.73k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.73k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 1.18k | { | 1814 | 1.18k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.18k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 6.70M | { | 1814 | 6.70M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 6.70M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1813 | 6.59k | { | 1814 | 6.59k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 6.59k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1813 | 172k | { | 1814 | 172k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 172k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1813 | 7.41k | { | 1814 | 7.41k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 7.41k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 1813 | 21.1k | { | 1814 | 21.1k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 21.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1813 | 104k | { | 1814 | 104k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 104k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 30.1k | { | 1814 | 30.1k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 30.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 11.1k | { | 1814 | 11.1k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 11.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_right_visitor, unsigned int>(immer::detail::rbts::dec_right_visitor, unsigned int&&) Line | Count | Source | 1813 | 20.2k | { | 1814 | 20.2k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 20.2k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 2.76k | { | 1814 | 2.76k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 2.76k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 3.96k | { | 1814 | 3.96k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 3.96k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 58.1k | { | 1814 | 58.1k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 58.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 2.20k | { | 1814 | 2.20k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 2.20k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::dec_left_visitor, unsigned int&>(immer::detail::rbts::dec_left_visitor, unsigned int&) Line | Count | Source | 1813 | 1.90k | { | 1814 | 1.90k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.90k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 200k | { | 1814 | 200k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 200k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1813 | 50.1k | { | 1814 | 50.1k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 50.1k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&, unsigned int const&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&, unsigned int const&, unsigned long&) Line | Count | Source | 1813 | 12.3k | { | 1814 | 12.3k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 12.3k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1813 | 9.37k | { | 1814 | 9.37k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 9.37k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1813 | 23.6k | { | 1814 | 23.6k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 23.6k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1813 | 22.7k | { | 1814 | 22.7k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 22.7k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1813 | 1.96k | { | 1814 | 1.96k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.96k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1813 | 580 | { | 1814 | 580 | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 580 | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 1813 | 4.51M | { | 1814 | 4.51M | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 4.51M | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1813 | 946 | { | 1814 | 946 | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 946 | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1813 | 1.92k | { | 1814 | 1.92k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.92k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 1813 | 141k | { | 1814 | 141k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 141k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Line | Count | Source | 1813 | 1.13k | { | 1814 | 1.13k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 1.13k | } |
decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1813 | 2.72k | { | 1814 | 2.72k | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); | 1815 | 2.72k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit<immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1816 | | }; |
1817 | | |
1818 | | template <typename Pos> |
1819 | | using is_relaxed = std::is_same<relaxed_pos<typename std::decay_t<Pos>::node_t>, |
1820 | | std::decay_t<Pos>>; |
1821 | | |
1822 | | template <typename Pos> |
1823 | | constexpr auto is_relaxed_v = is_relaxed<Pos>::value; |
1824 | | |
1825 | | template <typename NodeT> |
1826 | | relaxed_pos<NodeT> |
1827 | | make_relaxed_pos(NodeT* node, shift_t shift, typename NodeT::relaxed_t* relaxed) |
1828 | 386M | { |
1829 | 386M | assert(node); |
1830 | 386M | assert(relaxed); |
1831 | 386M | assert(shift >= NodeT::bits_leaf); |
1832 | 386M | return {node, shift, relaxed}; |
1833 | 386M | } |
1834 | | |
1835 | | template <typename NodeT, typename Visitor, typename... Args> |
1836 | | decltype(auto) visit_maybe_relaxed_sub( |
1837 | | NodeT* node, shift_t shift, size_t size, Visitor v, Args&&... args) |
1838 | 352M | { |
1839 | 352M | assert(node); |
1840 | 352M | auto relaxed = node->relaxed(); |
1841 | 352M | if (relaxed) { |
1842 | 329M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); |
1843 | 329M | return make_relaxed_pos(node, shift, relaxed) |
1844 | 329M | .visit(v, std::forward<Args>(args)...); |
1845 | 329M | } else { |
1846 | 23.7M | return make_regular_sub_pos(node, shift, size) |
1847 | 23.7M | .visit(v, std::forward<Args>(args)...); |
1848 | 23.7M | } |
1849 | 352M | } decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::dec_visitor>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::dec_visitor) Line | Count | Source | 1838 | 152M | { | 1839 | 152M | assert(node); | 1840 | 152M | auto relaxed = node->relaxed(); | 1841 | 152M | if (relaxed) { | 1842 | 137M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 137M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 137M | .visit(v, std::forward<Args>(args)...); | 1845 | 137M | } else { | 1846 | 14.9M | return make_regular_sub_pos(node, shift, size) | 1847 | 14.9M | .visit(v, std::forward<Args>(args)...); | 1848 | 14.9M | } | 1849 | 152M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1838 | 180k | { | 1839 | 180k | assert(node); | 1840 | 180k | auto relaxed = node->relaxed(); | 1841 | 180k | if (relaxed) { | 1842 | 140k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 140k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 140k | .visit(v, std::forward<Args>(args)...); | 1845 | 140k | } else { | 1846 | 39.9k | return make_regular_sub_pos(node, shift, size) | 1847 | 39.9k | .visit(v, std::forward<Args>(args)...); | 1848 | 39.9k | } | 1849 | 180k | } |
flex-vector-bo.cpp:decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::update_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, LLVMFuzzerTestOneInput::$_6::operator()<fuzzer_input>(fuzzer_input&) const::{lambda(auto:1)#1}&)Line | Count | Source | 1838 | 286k | { | 1839 | 286k | assert(node); | 1840 | 286k | auto relaxed = node->relaxed(); | 1841 | 286k | if (relaxed) { | 1842 | 234k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 234k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 234k | .visit(v, std::forward<Args>(args)...); | 1845 | 234k | } else { | 1846 | 52.0k | return make_regular_sub_pos(node, shift, size) | 1847 | 52.0k | .visit(v, std::forward<Args>(args)...); | 1848 | 52.0k | } | 1849 | 286k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1838 | 37.4k | { | 1839 | 37.4k | assert(node); | 1840 | 37.4k | auto relaxed = node->relaxed(); | 1841 | 37.4k | if (relaxed) { | 1842 | 29.4k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 29.4k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 29.4k | .visit(v, std::forward<Args>(args)...); | 1845 | 29.4k | } else { | 1846 | 8.03k | return make_regular_sub_pos(node, shift, size) | 1847 | 8.03k | .visit(v, std::forward<Args>(args)...); | 1848 | 8.03k | } | 1849 | 37.4k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1838 | 6.57k | { | 1839 | 6.57k | assert(node); | 1840 | 6.57k | auto relaxed = node->relaxed(); | 1841 | 6.57k | if (relaxed) { | 1842 | 3.67k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 3.67k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 3.67k | .visit(v, std::forward<Args>(args)...); | 1845 | 3.67k | } else { | 1846 | 2.90k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.90k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.90k | } | 1849 | 6.57k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, unsigned long&) Line | Count | Source | 1838 | 34.2k | { | 1839 | 34.2k | assert(node); | 1840 | 34.2k | auto relaxed = node->relaxed(); | 1841 | 34.2k | if (relaxed) { | 1842 | 26.1k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 26.1k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 26.1k | .visit(v, std::forward<Args>(args)...); | 1845 | 26.1k | } else { | 1846 | 8.15k | return make_regular_sub_pos(node, shift, size) | 1847 | 8.15k | .visit(v, std::forward<Args>(args)...); | 1848 | 8.15k | } | 1849 | 34.2k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, unsigned long&) Line | Count | Source | 1838 | 103k | { | 1839 | 103k | assert(node); | 1840 | 103k | auto relaxed = node->relaxed(); | 1841 | 103k | if (relaxed) { | 1842 | 101k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 101k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 101k | .visit(v, std::forward<Args>(args)...); | 1845 | 101k | } else { | 1846 | 1.70k | return make_regular_sub_pos(node, shift, size) | 1847 | 1.70k | .visit(v, std::forward<Args>(args)...); | 1848 | 1.70k | } | 1849 | 103k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 7.26k | { | 1839 | 7.26k | assert(node); | 1840 | 7.26k | auto relaxed = node->relaxed(); | 1841 | 7.26k | if (relaxed) { | 1842 | 5.11k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 5.11k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 5.11k | .visit(v, std::forward<Args>(args)...); | 1845 | 5.11k | } else { | 1846 | 2.15k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.15k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.15k | } | 1849 | 7.26k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 16.9k | { | 1839 | 16.9k | assert(node); | 1840 | 16.9k | auto relaxed = node->relaxed(); | 1841 | 16.9k | if (relaxed) { | 1842 | 16.6k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 16.6k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 16.6k | .visit(v, std::forward<Args>(args)...); | 1845 | 16.6k | } else { | 1846 | 281 | return make_regular_sub_pos(node, shift, size) | 1847 | 281 | .visit(v, std::forward<Args>(args)...); | 1848 | 281 | } | 1849 | 16.9k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_rebalance_plan_fill_visitor, immer::detail::rbts::concat_rebalance_plan<3u, 3u>&) Line | Count | Source | 1838 | 86.7M | { | 1839 | 86.7M | assert(node); | 1840 | 86.7M | auto relaxed = node->relaxed(); | 1841 | 86.7M | if (relaxed) { | 1842 | 83.1M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 83.1M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 83.1M | .visit(v, std::forward<Args>(args)...); | 1845 | 83.1M | } else { | 1846 | 3.53M | return make_regular_sub_pos(node, shift, size) | 1847 | 3.53M | .visit(v, std::forward<Args>(args)...); | 1848 | 3.53M | } | 1849 | 86.7M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_merger_visitor, immer::detail::rbts::concat_merger<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 86.7M | { | 1839 | 86.7M | assert(node); | 1840 | 86.7M | auto relaxed = node->relaxed(); | 1841 | 86.7M | if (relaxed) { | 1842 | 83.1M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 83.1M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 83.1M | .visit(v, std::forward<Args>(args)...); | 1845 | 83.1M | } else { | 1846 | 3.53M | return make_regular_sub_pos(node, shift, size) | 1847 | 3.53M | .visit(v, std::forward<Args>(args)...); | 1848 | 3.53M | } | 1849 | 86.7M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Line | Count | Source | 1838 | 999k | { | 1839 | 999k | assert(node); | 1840 | 999k | auto relaxed = node->relaxed(); | 1841 | 999k | if (relaxed) { | 1842 | 982k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 982k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 982k | .visit(v, std::forward<Args>(args)...); | 1845 | 982k | } else { | 1846 | 16.8k | return make_regular_sub_pos(node, shift, size) | 1847 | 16.8k | .visit(v, std::forward<Args>(args)...); | 1848 | 16.8k | } | 1849 | 999k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 982k | { | 1839 | 982k | assert(node); | 1840 | 982k | auto relaxed = node->relaxed(); | 1841 | 982k | if (relaxed) { | 1842 | 975k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 975k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 975k | .visit(v, std::forward<Args>(args)...); | 1845 | 975k | } else { | 1846 | 7.03k | return make_regular_sub_pos(node, shift, size) | 1847 | 7.03k | .visit(v, std::forward<Args>(args)...); | 1848 | 7.03k | } | 1849 | 982k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 2.96M | { | 1839 | 2.96M | assert(node); | 1840 | 2.96M | auto relaxed = node->relaxed(); | 1841 | 2.96M | if (relaxed) { | 1842 | 2.96M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 2.96M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 2.96M | .visit(v, std::forward<Args>(args)...); | 1845 | 2.96M | } else { | 1846 | 1.97k | return make_regular_sub_pos(node, shift, size) | 1847 | 1.97k | .visit(v, std::forward<Args>(args)...); | 1848 | 1.97k | } | 1849 | 2.96M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 1.44M | { | 1839 | 1.44M | assert(node); | 1840 | 1.44M | auto relaxed = node->relaxed(); | 1841 | 1.44M | if (relaxed) { | 1842 | 1.14M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 1.14M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 1.14M | .visit(v, std::forward<Args>(args)...); | 1845 | 1.14M | } else { | 1846 | 302k | return make_regular_sub_pos(node, shift, size) | 1847 | 302k | .visit(v, std::forward<Args>(args)...); | 1848 | 302k | } | 1849 | 1.44M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 6.73M | { | 1839 | 6.73M | assert(node); | 1840 | 6.73M | auto relaxed = node->relaxed(); | 1841 | 6.73M | if (relaxed) { | 1842 | 6.73M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 6.73M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 6.73M | .visit(v, std::forward<Args>(args)...); | 1845 | 6.73M | } else { | 1846 | 1.29k | return make_regular_sub_pos(node, shift, size) | 1847 | 1.29k | .visit(v, std::forward<Args>(args)...); | 1848 | 1.29k | } | 1849 | 6.73M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 11.8k | { | 1839 | 11.8k | assert(node); | 1840 | 11.8k | auto relaxed = node->relaxed(); | 1841 | 11.8k | if (relaxed) { | 1842 | 11.4k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 11.4k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 11.4k | .visit(v, std::forward<Args>(args)...); | 1845 | 11.4k | } else { | 1846 | 405 | return make_regular_sub_pos(node, shift, size) | 1847 | 405 | .visit(v, std::forward<Args>(args)...); | 1848 | 405 | } | 1849 | 11.8k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_left_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 1.95k | { | 1839 | 1.95k | assert(node); | 1840 | 1.95k | auto relaxed = node->relaxed(); | 1841 | 1.95k | if (relaxed) { | 1842 | 1.73k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 1.73k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 1.73k | .visit(v, std::forward<Args>(args)...); | 1845 | 1.73k | } else { | 1846 | 222 | return make_regular_sub_pos(node, shift, size) | 1847 | 222 | .visit(v, std::forward<Args>(args)...); | 1848 | 222 | } | 1849 | 1.95k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 4.43k | { | 1839 | 4.43k | assert(node); | 1840 | 4.43k | auto relaxed = node->relaxed(); | 1841 | 4.43k | if (relaxed) { | 1842 | 1.18k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 1.18k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 1.18k | .visit(v, std::forward<Args>(args)...); | 1845 | 3.25k | } else { | 1846 | 3.25k | return make_regular_sub_pos(node, shift, size) | 1847 | 3.25k | .visit(v, std::forward<Args>(args)...); | 1848 | 3.25k | } | 1849 | 4.43k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_both_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 7.44M | { | 1839 | 7.44M | assert(node); | 1840 | 7.44M | auto relaxed = node->relaxed(); | 1841 | 7.44M | if (relaxed) { | 1842 | 6.70M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 6.70M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 6.70M | .visit(v, std::forward<Args>(args)...); | 1845 | 6.70M | } else { | 1846 | 737k | return make_regular_sub_pos(node, shift, size) | 1847 | 737k | .visit(v, std::forward<Args>(args)...); | 1848 | 737k | } | 1849 | 7.44M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_right_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Line | Count | Source | 1838 | 16.8k | { | 1839 | 16.8k | assert(node); | 1840 | 16.8k | auto relaxed = node->relaxed(); | 1841 | 16.8k | if (relaxed) { | 1842 | 6.59k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 6.59k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 6.59k | .visit(v, std::forward<Args>(args)...); | 1845 | 10.2k | } else { | 1846 | 10.2k | return make_regular_sub_pos(node, shift, size) | 1847 | 10.2k | .visit(v, std::forward<Args>(args)...); | 1848 | 10.2k | } | 1849 | 16.8k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1838 | 166k | { | 1839 | 166k | assert(node); | 1840 | 166k | auto relaxed = node->relaxed(); | 1841 | 166k | if (relaxed) { | 1842 | 12.4k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 12.4k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 12.4k | .visit(v, std::forward<Args>(args)...); | 1845 | 154k | } else { | 1846 | 154k | return make_regular_sub_pos(node, shift, size) | 1847 | 154k | .visit(v, std::forward<Args>(args)...); | 1848 | 154k | } | 1849 | 166k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::push_tail_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&) Line | Count | Source | 1838 | 8.54k | { | 1839 | 8.54k | assert(node); | 1840 | 8.54k | auto relaxed = node->relaxed(); | 1841 | 8.54k | if (relaxed) { | 1842 | 7.41k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 7.41k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 7.41k | .visit(v, std::forward<Args>(args)...); | 1845 | 7.41k | } else { | 1846 | 1.12k | return make_regular_sub_pos(node, shift, size) | 1847 | 1.12k | .visit(v, std::forward<Args>(args)...); | 1848 | 1.12k | } | 1849 | 8.54k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&&) Line | Count | Source | 1838 | 24.3k | { | 1839 | 24.3k | assert(node); | 1840 | 24.3k | auto relaxed = node->relaxed(); | 1841 | 24.3k | if (relaxed) { | 1842 | 21.1k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 21.1k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 21.1k | .visit(v, std::forward<Args>(args)...); | 1845 | 21.1k | } else { | 1846 | 3.19k | return make_regular_sub_pos(node, shift, size) | 1847 | 3.19k | .visit(v, std::forward<Args>(args)...); | 1848 | 3.19k | } | 1849 | 24.3k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::get_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>**&) Line | Count | Source | 1838 | 106k | { | 1839 | 106k | assert(node); | 1840 | 106k | auto relaxed = node->relaxed(); | 1841 | 106k | if (relaxed) { | 1842 | 104k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 104k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 104k | .visit(v, std::forward<Args>(args)...); | 1845 | 104k | } else { | 1846 | 2.22k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.22k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.22k | } | 1849 | 106k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 42.9k | { | 1839 | 42.9k | assert(node); | 1840 | 42.9k | auto relaxed = node->relaxed(); | 1841 | 42.9k | if (relaxed) { | 1842 | 30.1k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 30.1k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 30.1k | .visit(v, std::forward<Args>(args)...); | 1845 | 30.1k | } else { | 1846 | 12.7k | return make_regular_sub_pos(node, shift, size) | 1847 | 12.7k | .visit(v, std::forward<Args>(args)...); | 1848 | 12.7k | } | 1849 | 42.9k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 12.3k | { | 1839 | 12.3k | assert(node); | 1840 | 12.3k | auto relaxed = node->relaxed(); | 1841 | 12.3k | if (relaxed) { | 1842 | 11.1k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 11.1k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 11.1k | .visit(v, std::forward<Args>(args)...); | 1845 | 11.1k | } else { | 1846 | 1.19k | return make_regular_sub_pos(node, shift, size) | 1847 | 1.19k | .visit(v, std::forward<Args>(args)...); | 1848 | 1.19k | } | 1849 | 12.3k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 7.38k | { | 1839 | 7.38k | assert(node); | 1840 | 7.38k | auto relaxed = node->relaxed(); | 1841 | 7.38k | if (relaxed) { | 1842 | 2.76k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 2.76k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 2.76k | .visit(v, std::forward<Args>(args)...); | 1845 | 4.62k | } else { | 1846 | 4.62k | return make_regular_sub_pos(node, shift, size) | 1847 | 4.62k | .visit(v, std::forward<Args>(args)...); | 1848 | 4.62k | } | 1849 | 7.38k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 7.13k | { | 1839 | 7.13k | assert(node); | 1840 | 7.13k | auto relaxed = node->relaxed(); | 1841 | 7.13k | if (relaxed) { | 1842 | 3.96k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 3.96k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 3.96k | .visit(v, std::forward<Args>(args)...); | 1845 | 3.96k | } else { | 1846 | 3.17k | return make_regular_sub_pos(node, shift, size) | 1847 | 3.17k | .visit(v, std::forward<Args>(args)...); | 1848 | 3.17k | } | 1849 | 7.13k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 60.9k | { | 1839 | 60.9k | assert(node); | 1840 | 60.9k | auto relaxed = node->relaxed(); | 1841 | 60.9k | if (relaxed) { | 1842 | 58.1k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 58.1k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 58.1k | .visit(v, std::forward<Args>(args)...); | 1845 | 58.1k | } else { | 1846 | 2.76k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.76k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.76k | } | 1849 | 60.9k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, true, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 3.32k | { | 1839 | 3.32k | assert(node); | 1840 | 3.32k | auto relaxed = node->relaxed(); | 1841 | 3.32k | if (relaxed) { | 1842 | 2.20k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 2.20k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 2.20k | .visit(v, std::forward<Args>(args)...); | 1845 | 2.20k | } else { | 1846 | 1.11k | return make_regular_sub_pos(node, shift, size) | 1847 | 1.11k | .visit(v, std::forward<Args>(args)...); | 1848 | 1.11k | } | 1849 | 3.32k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, true>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 203k | { | 1839 | 203k | assert(node); | 1840 | 203k | auto relaxed = node->relaxed(); | 1841 | 203k | if (relaxed) { | 1842 | 200k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 200k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 200k | .visit(v, std::forward<Args>(args)...); | 1845 | 200k | } else { | 1846 | 2.29k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.29k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.29k | } | 1849 | 203k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::slice_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>, unsigned long&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Line | Count | Source | 1838 | 52.3k | { | 1839 | 52.3k | assert(node); | 1840 | 52.3k | auto relaxed = node->relaxed(); | 1841 | 52.3k | if (relaxed) { | 1842 | 50.1k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 50.1k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 50.1k | .visit(v, std::forward<Args>(args)...); | 1845 | 50.1k | } else { | 1846 | 2.18k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.18k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.18k | } | 1849 | 52.3k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&, unsigned int const&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* const&, unsigned int const&, unsigned long&) Line | Count | Source | 1838 | 21.0k | { | 1839 | 21.0k | assert(node); | 1840 | 21.0k | auto relaxed = node->relaxed(); | 1841 | 21.0k | if (relaxed) { | 1842 | 12.3k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 12.3k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 12.3k | .visit(v, std::forward<Args>(args)...); | 1845 | 12.3k | } else { | 1846 | 8.67k | return make_regular_sub_pos(node, shift, size) | 1847 | 8.67k | .visit(v, std::forward<Args>(args)...); | 1848 | 8.67k | } | 1849 | 21.0k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1838 | 12.3k | { | 1839 | 12.3k | assert(node); | 1840 | 12.3k | auto relaxed = node->relaxed(); | 1841 | 12.3k | if (relaxed) { | 1842 | 9.37k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 9.37k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 9.37k | .visit(v, std::forward<Args>(args)...); | 1845 | 9.37k | } else { | 1846 | 3.02k | return make_regular_sub_pos(node, shift, size) | 1847 | 3.02k | .visit(v, std::forward<Args>(args)...); | 1848 | 3.02k | } | 1849 | 12.3k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1838 | 28.6k | { | 1839 | 28.6k | assert(node); | 1840 | 28.6k | auto relaxed = node->relaxed(); | 1841 | 28.6k | if (relaxed) { | 1842 | 23.6k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 23.6k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 23.6k | .visit(v, std::forward<Args>(args)...); | 1845 | 23.6k | } else { | 1846 | 4.98k | return make_regular_sub_pos(node, shift, size) | 1847 | 4.98k | .visit(v, std::forward<Args>(args)...); | 1848 | 4.98k | } | 1849 | 28.6k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1838 | 23.6k | { | 1839 | 23.6k | assert(node); | 1840 | 23.6k | auto relaxed = node->relaxed(); | 1841 | 23.6k | if (relaxed) { | 1842 | 22.7k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 22.7k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 22.7k | .visit(v, std::forward<Args>(args)...); | 1845 | 22.7k | } else { | 1846 | 881 | return make_regular_sub_pos(node, shift, size) | 1847 | 881 | .visit(v, std::forward<Args>(args)...); | 1848 | 881 | } | 1849 | 23.6k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1838 | 2.87k | { | 1839 | 2.87k | assert(node); | 1840 | 2.87k | auto relaxed = node->relaxed(); | 1841 | 2.87k | if (relaxed) { | 1842 | 1.96k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 1.96k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 1.96k | .visit(v, std::forward<Args>(args)...); | 1845 | 1.96k | } else { | 1846 | 910 | return make_regular_sub_pos(node, shift, size) | 1847 | 910 | .visit(v, std::forward<Args>(args)...); | 1848 | 910 | } | 1849 | 2.87k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1838 | 1.50k | { | 1839 | 1.50k | assert(node); | 1840 | 1.50k | auto relaxed = node->relaxed(); | 1841 | 1.50k | if (relaxed) { | 1842 | 580 | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 580 | return make_relaxed_pos(node, shift, relaxed) | 1844 | 580 | .visit(v, std::forward<Args>(args)...); | 1845 | 925 | } else { | 1846 | 925 | return make_regular_sub_pos(node, shift, size) | 1847 | 925 | .visit(v, std::forward<Args>(args)...); | 1848 | 925 | } | 1849 | 1.50k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::region_for_visitor<int>, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::region_for_visitor<int>, unsigned long&) Line | Count | Source | 1838 | 4.80M | { | 1839 | 4.80M | assert(node); | 1840 | 4.80M | auto relaxed = node->relaxed(); | 1841 | 4.80M | if (relaxed) { | 1842 | 4.51M | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 4.51M | return make_relaxed_pos(node, shift, relaxed) | 1844 | 4.51M | .visit(v, std::forward<Args>(args)...); | 1845 | 4.51M | } else { | 1846 | 290k | return make_regular_sub_pos(node, shift, size) | 1847 | 290k | .visit(v, std::forward<Args>(args)...); | 1848 | 290k | } | 1849 | 4.80M | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1838 | 4.98k | { | 1839 | 4.98k | assert(node); | 1840 | 4.98k | auto relaxed = node->relaxed(); | 1841 | 4.98k | if (relaxed) { | 1842 | 946 | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 946 | return make_relaxed_pos(node, shift, relaxed) | 1844 | 946 | .visit(v, std::forward<Args>(args)...); | 1845 | 4.04k | } else { | 1846 | 4.04k | return make_regular_sub_pos(node, shift, size) | 1847 | 4.04k | .visit(v, std::forward<Args>(args)...); | 1848 | 4.04k | } | 1849 | 4.98k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&) Line | Count | Source | 1838 | 4.55k | { | 1839 | 4.55k | assert(node); | 1840 | 4.55k | auto relaxed = node->relaxed(); | 1841 | 4.55k | if (relaxed) { | 1842 | 1.92k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 1.92k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 1.92k | .visit(v, std::forward<Args>(args)...); | 1845 | 2.62k | } else { | 1846 | 2.62k | return make_regular_sub_pos(node, shift, size) | 1847 | 2.62k | .visit(v, std::forward<Args>(args)...); | 1848 | 2.62k | } | 1849 | 4.55k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::for_each_chunk_p_visitor, immer::detail::rbts::equals_visitor::equal_chunk_p<immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)::{lambda(auto:1, auto:2)#1}&)Line | Count | Source | 1838 | 158k | { | 1839 | 158k | assert(node); | 1840 | 158k | auto relaxed = node->relaxed(); | 1841 | 158k | if (relaxed) { | 1842 | 141k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 141k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 141k | .visit(v, std::forward<Args>(args)...); | 1845 | 141k | } else { | 1846 | 17.0k | return make_regular_sub_pos(node, shift, size) | 1847 | 17.0k | .visit(v, std::forward<Args>(args)...); | 1848 | 17.0k | } | 1849 | 158k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Line | Count | Source | 1838 | 1.13k | { | 1839 | 1.13k | assert(node); | 1840 | 1.13k | auto relaxed = node->relaxed(); | 1841 | 1.13k | if (relaxed) { | 1842 | 1.13k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 1.13k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 1.13k | .visit(v, std::forward<Args>(args)...); | 1845 | 1.13k | } else { | 1846 | 0 | return make_regular_sub_pos(node, shift, size) | 1847 | 0 | .visit(v, std::forward<Args>(args)...); | 1848 | 0 | } | 1849 | 1.13k | } |
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Line | Count | Source | 1838 | 8.67k | { | 1839 | 8.67k | assert(node); | 1840 | 8.67k | auto relaxed = node->relaxed(); | 1841 | 8.67k | if (relaxed) { | 1842 | 2.72k | assert(size == relaxed->d.sizes[relaxed->d.count - 1]); | 1843 | 2.72k | return make_relaxed_pos(node, shift, relaxed) | 1844 | 2.72k | .visit(v, std::forward<Args>(args)...); | 1845 | 5.95k | } else { | 1846 | 5.95k | return make_regular_sub_pos(node, shift, size) | 1847 | 5.95k | .visit(v, std::forward<Args>(args)...); | 1848 | 5.95k | } | 1849 | 8.67k | } |
Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, unsigned long&&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::singleton_regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::empty_leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_merger_mut_visitor, immer::detail::rbts::concat_merger_mut<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::relaxed_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_left_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_both_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::full_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&) Unexecuted instantiation: decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&>(immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::concat_trees_right_mut_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&, immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::leaf_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::edit&) |
1850 | | |
1851 | | template <typename NodeT, |
1852 | | shift_t Shift, |
1853 | | bits_t B = NodeT::bits, |
1854 | | bits_t BL = NodeT::bits_leaf> |
1855 | | struct relaxed_descent_pos |
1856 | | { |
1857 | | static_assert(Shift > 0, "not leaf..."); |
1858 | | |
1859 | | using node_t = NodeT; |
1860 | | using relaxed_t = typename NodeT::relaxed_t; |
1861 | | node_t* node_; |
1862 | | relaxed_t* relaxed_; |
1863 | | |
1864 | | count_t count() const { return relaxed_->d.count; } |
1865 | | node_t* node() const { return node_; } |
1866 | | shift_t shift() const { return Shift; } |
1867 | | size_t size() const { return relaxed_->d.sizes[relaxed_->d.count - 1]; } |
1868 | | |
1869 | | count_t index(size_t idx) const |
1870 | | { |
1871 | | // make gcc happy |
1872 | | #if !defined(_MSC_VER) |
1873 | | #pragma GCC diagnostic push |
1874 | | #pragma GCC diagnostic ignored "-Wshift-count-overflow" |
1875 | | #endif |
1876 | | auto offset = idx >> Shift; |
1877 | | #if !defined(_MSC_VER) |
1878 | | #pragma GCC diagnostic pop |
1879 | | #endif |
1880 | | while (relaxed_->d.sizes[offset] <= idx) |
1881 | | ++offset; |
1882 | | return offset; |
1883 | | } |
1884 | | |
1885 | | template <typename Visitor> |
1886 | | decltype(auto) descend(Visitor v, size_t idx) |
1887 | | { |
1888 | | auto offset = index(idx); |
1889 | | auto child = node_->inner()[offset]; |
1890 | | auto left_size = offset ? relaxed_->d.sizes[offset - 1] : 0; |
1891 | | auto next_idx = idx - left_size; |
1892 | | auto r = child->relaxed(); |
1893 | | return r ? relaxed_descent_pos<NodeT, Shift - B>{child, r}.visit( |
1894 | | v, next_idx) |
1895 | | : regular_descent_pos<NodeT, Shift - B>{child}.visit(v, |
1896 | | next_idx); |
1897 | | } |
1898 | | |
1899 | | template <typename Visitor, typename... Args> |
1900 | | decltype(auto) visit(Visitor v, Args&&... args) |
1901 | | { |
1902 | | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); |
1903 | | } |
1904 | | }; |
1905 | | |
1906 | | template <typename NodeT, bits_t B, bits_t BL> |
1907 | | struct relaxed_descent_pos<NodeT, BL, B, BL> |
1908 | | { |
1909 | | using node_t = NodeT; |
1910 | | using relaxed_t = typename NodeT::relaxed_t; |
1911 | | node_t* node_; |
1912 | | relaxed_t* relaxed_; |
1913 | | |
1914 | | count_t count() const { return relaxed_->d.count; } |
1915 | | node_t* node() const { return node_; } |
1916 | | shift_t shift() const { return BL; } |
1917 | | size_t size() const { return relaxed_->d.sizes[relaxed_->d.count - 1]; } |
1918 | | |
1919 | | count_t index(size_t idx) const |
1920 | | { |
1921 | | auto offset = (idx >> BL) & mask<B>; |
1922 | | while (relaxed_->d.sizes[offset] <= idx) |
1923 | | ++offset; |
1924 | | return offset; |
1925 | | } |
1926 | | |
1927 | | template <typename Visitor> |
1928 | | decltype(auto) descend(Visitor v, size_t idx) |
1929 | | { |
1930 | | auto offset = index(idx); |
1931 | | auto child = node_->inner()[offset]; |
1932 | | auto left_size = offset ? relaxed_->d.sizes[offset - 1] : 0; |
1933 | | auto next_idx = idx - left_size; |
1934 | | return leaf_descent_pos<NodeT>{child}.visit(v, next_idx); |
1935 | | } |
1936 | | |
1937 | | template <typename Visitor, typename... Args> |
1938 | | decltype(auto) visit(Visitor v, Args&&... args) |
1939 | | { |
1940 | | return Visitor::visit_relaxed(*this, std::forward<Args>(args)...); |
1941 | | } |
1942 | | }; |
1943 | | |
1944 | | template <typename NodeT, typename Visitor, typename... Args> |
1945 | | decltype(auto) |
1946 | | visit_maybe_relaxed_descent(NodeT* node, shift_t shift, Visitor v, size_t idx) |
1947 | | { |
1948 | | constexpr auto B = NodeT::bits; |
1949 | | constexpr auto BL = NodeT::bits_leaf; |
1950 | | assert(node); |
1951 | | assert(shift >= BL); |
1952 | | auto r = node->relaxed(); |
1953 | | if (r) { |
1954 | | switch (shift) { |
1955 | | case BL + B * 0: |
1956 | | return relaxed_descent_pos<NodeT, BL + B * 0>{node, r}.visit(v, |
1957 | | idx); |
1958 | | case BL + B * 1: |
1959 | | return relaxed_descent_pos<NodeT, BL + B * 1>{node, r}.visit(v, |
1960 | | idx); |
1961 | | case BL + B * 2: |
1962 | | return relaxed_descent_pos<NodeT, BL + B * 2>{node, r}.visit(v, |
1963 | | idx); |
1964 | | case BL + B * 3: |
1965 | | return relaxed_descent_pos<NodeT, BL + B * 3>{node, r}.visit(v, |
1966 | | idx); |
1967 | | case BL + B * 4: |
1968 | | return relaxed_descent_pos<NodeT, BL + B * 4>{node, r}.visit(v, |
1969 | | idx); |
1970 | | case BL + B * 5: |
1971 | | return relaxed_descent_pos<NodeT, BL + B * 5>{node, r}.visit(v, |
1972 | | idx); |
1973 | | #if IMMER_DESCENT_DEEP |
1974 | | default: |
1975 | | for (auto level = shift; level != endshift<B, BL>; level -= B) { |
1976 | | auto r = node->relaxed(); |
1977 | | if (r) { |
1978 | | auto node_idx = (idx >> level) & mask<B>; |
1979 | | while (r->d.sizes[node_idx] <= idx) |
1980 | | ++node_idx; |
1981 | | if (node_idx) |
1982 | | idx -= r->d.sizes[node_idx - 1]; |
1983 | | node = node->inner()[node_idx]; |
1984 | | } else { |
1985 | | do { |
1986 | | node = node->inner()[(idx >> level) & mask<B>]; |
1987 | | } while ((level -= B) != endshift<B, BL>); |
1988 | | return make_leaf_descent_pos(node).visit(v, idx); |
1989 | | } |
1990 | | } |
1991 | | return make_leaf_descent_pos(node).visit(v, idx); |
1992 | | #endif // IMMER_DESCENT_DEEP |
1993 | | } |
1994 | | IMMER_UNREACHABLE; |
1995 | | } else { |
1996 | | return visit_regular_descent(node, shift, v, idx); |
1997 | | } |
1998 | | } |
1999 | | |
2000 | | } // namespace rbts |
2001 | | } // namespace detail |
2002 | | } // namespace immer |