Coverage Report

Created: 2026-09-14 06:58

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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