/src/immer/immer/detail/combine_standard_layout.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 <cstddef> |
12 | | #include <type_traits> |
13 | | |
14 | | #if defined(__GNUC__) && __GNUC__ == 7 && __GNUC_MINOR__ == 1 |
15 | | #define IMMER_BROKEN_STANDARD_LAYOUT_DETECTION 1 |
16 | | #define immer_offsetof(st, m) ((std::size_t) & (((st*) 0)->m)) |
17 | | #else |
18 | | #define IMMER_BROKEN_STANDARD_LAYOUT_DETECTION 0 |
19 | 125M | #define immer_offsetof offsetof |
20 | | #endif |
21 | | |
22 | | namespace immer { |
23 | | namespace detail { |
24 | | |
25 | | // |
26 | | // Metafunction that returns a standard layout struct that combines |
27 | | // all the standard layout types in `Ts...`, while making sure that |
28 | | // empty base optimizations are used. |
29 | | // |
30 | | // To query a part of the type do `get<my_part>(x)`; |
31 | | // |
32 | | // This is useful when putting together a type that merges various |
33 | | // types coming from different policies. Some of them might be empty, |
34 | | // so we shall enable empty base optimizations. But if we just |
35 | | // inherit from all of them, we would break the "standard layout" |
36 | | // rules, preventing us from using `offseof(...)`. So metafunction |
37 | | // will generate the type by sometimes inheriting, sometimes adding as |
38 | | // member. |
39 | | // |
40 | | // Note that the types are added to the combined type from right to |
41 | | // left! |
42 | | // |
43 | | template <typename... Ts> |
44 | | struct combine_standard_layout; |
45 | | |
46 | | template <typename... Ts> |
47 | | using combine_standard_layout_t = typename combine_standard_layout<Ts...>::type; |
48 | | |
49 | | namespace csl { |
50 | | |
51 | | template <typename T> |
52 | | struct type_t |
53 | | {}; |
54 | | |
55 | | template <typename U, typename T> |
56 | | U& get(T& x); |
57 | | |
58 | | template <typename U, typename T> |
59 | | const U& get(const T& x); |
60 | | |
61 | | template <typename T, typename Next = void> |
62 | | struct inherit |
63 | | { |
64 | | struct type |
65 | | : T |
66 | | , Next |
67 | | { |
68 | | using Next::get_; |
69 | | |
70 | | template <typename U> |
71 | | friend decltype(auto) get(type& x) |
72 | | { |
73 | | return x.get_(type_t<U>{}); |
74 | | } |
75 | | template <typename U> |
76 | | friend decltype(auto) get(const type& x) |
77 | | { |
78 | | return x.get_(type_t<U>{}); |
79 | | } |
80 | | |
81 | | T& get_(type_t<T>) { return *this; } |
82 | 62.5M | const T& get_(type_t<T>) const { return *this; } |
83 | | }; |
84 | | }; |
85 | | |
86 | | template <typename T> |
87 | | struct inherit<T, void> |
88 | | { |
89 | | struct type : T |
90 | | { |
91 | | template <typename U> |
92 | | friend decltype(auto) get(type& x) |
93 | | { |
94 | | return x.get_(type_t<U>{}); |
95 | | } |
96 | | template <typename U> |
97 | | friend decltype(auto) get(const type& x) |
98 | | { |
99 | | return x.get_(type_t<U>{}); |
100 | | } |
101 | | |
102 | 191M | T& get_(type_t<T>) { return *this; }immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type::get_(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 102 | 160M | T& get_(type_t<T>) { return *this; } |
immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type::get_(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 102 | 31.1M | T& get_(type_t<T>) { return *this; } |
|
103 | 760k | const T& get_(type_t<T>) const { return *this; }immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type::get_(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 103 | 603k | const T& get_(type_t<T>) const { return *this; } |
immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type::get_(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) const Line | Count | Source | 103 | 157k | const T& get_(type_t<T>) const { return *this; } |
|
104 | | }; |
105 | | }; |
106 | | |
107 | | template <typename T, typename Next = void> |
108 | | struct member |
109 | | { |
110 | | struct type : Next |
111 | | { |
112 | | T d; |
113 | | |
114 | | using Next::get_; |
115 | | |
116 | | template <typename U> |
117 | | friend decltype(auto) get(type& x) |
118 | | { |
119 | | return x.get_(type_t<U>{}); |
120 | | } |
121 | | template <typename U> |
122 | | friend decltype(auto) get(const type& x) |
123 | | { |
124 | | return x.get_(type_t<U>{}); |
125 | | } |
126 | | |
127 | | T& get_(type_t<T>) { return d; } |
128 | 1.60G | const T& get_(type_t<T>) const { return d; }immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type::get_(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 128 | 1.45G | const T& get_(type_t<T>) const { return d; } |
immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type::get_(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 128 | 154M | const T& get_(type_t<T>) const { return d; } |
|
129 | | }; |
130 | | }; |
131 | | |
132 | | template <typename T> |
133 | | struct member<T, void> |
134 | | { |
135 | | struct type |
136 | | { |
137 | | T d; |
138 | | |
139 | | template <typename U> |
140 | | friend decltype(auto) get(type& x) |
141 | | { |
142 | | return x.get_(type_t<U>{}); |
143 | | } |
144 | | template <typename U> |
145 | | friend decltype(auto) get(const type& x) |
146 | | { |
147 | | return x.get_(type_t<U>{}); |
148 | | } |
149 | | |
150 | 6.15M | T& get_(type_t<T>) { return d; } |
151 | 19.4M | const T& get_(type_t<T>) const { return d; } |
152 | | }; |
153 | | }; |
154 | | |
155 | | template <typename T, typename Next> |
156 | | struct member_two |
157 | | { |
158 | | struct type |
159 | | { |
160 | | Next n; |
161 | | T d; |
162 | | |
163 | | template <typename U> |
164 | | friend decltype(auto) get(type& x) |
165 | 198M | { |
166 | 198M | return x.get_(type_t<U>{}); |
167 | 198M | } decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 54.0M | { | 166 | 54.0M | return x.get_(type_t<U>{}); | 167 | 54.0M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 62.7M | { | 166 | 62.7M | return x.get_(type_t<U>{}); | 167 | 62.7M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 48.9k | { | 166 | 48.9k | return x.get_(type_t<U>{}); | 167 | 48.9k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 46.4k | { | 166 | 46.4k | return x.get_(type_t<U>{}); | 167 | 46.4k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 49.8k | { | 166 | 49.8k | return x.get_(type_t<U>{}); | 167 | 49.8k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 27.5k | { | 166 | 27.5k | return x.get_(type_t<U>{}); | 167 | 27.5k | } |
decltype(auto) immer::detail::csl::get<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 12.7k | { | 166 | 12.7k | return x.get_(type_t<U>{}); | 167 | 12.7k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 53.5k | { | 166 | 53.5k | return x.get_(type_t<U>{}); | 167 | 53.5k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 31.8k | { | 166 | 31.8k | return x.get_(type_t<U>{}); | 167 | 31.8k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 41.9k | { | 166 | 41.9k | return x.get_(type_t<U>{}); | 167 | 41.9k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 36.1k | { | 166 | 36.1k | return x.get_(type_t<U>{}); | 167 | 36.1k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 2.80M | { | 166 | 2.80M | return x.get_(type_t<U>{}); | 167 | 2.80M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 41.9k | { | 166 | 41.9k | return x.get_(type_t<U>{}); | 167 | 41.9k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 27.3k | { | 166 | 27.3k | return x.get_(type_t<U>{}); | 167 | 27.3k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 38.6k | { | 166 | 38.6k | return x.get_(type_t<U>{}); | 167 | 38.6k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 23.8k | { | 166 | 23.8k | return x.get_(type_t<U>{}); | 167 | 23.8k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 58.7k | { | 166 | 58.7k | return x.get_(type_t<U>{}); | 167 | 58.7k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 34.2k | { | 166 | 34.2k | return x.get_(type_t<U>{}); | 167 | 34.2k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 11.5M | { | 166 | 11.5M | return x.get_(type_t<U>{}); | 167 | 11.5M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 19.4M | { | 166 | 19.4M | return x.get_(type_t<U>{}); | 167 | 19.4M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 3.85k | { | 166 | 3.85k | return x.get_(type_t<U>{}); | 167 | 3.85k | } |
decltype(auto) immer::detail::csl::get<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::relaxed_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 2.48M | { | 166 | 2.48M | return x.get_(type_t<U>{}); | 167 | 2.48M | } |
decltype(auto) immer::detail::csl::get<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 3.65M | { | 166 | 3.65M | return x.get_(type_t<U>{}); | 167 | 3.65M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 40.6M | { | 166 | 40.6M | return x.get_(type_t<U>{}); | 167 | 40.6M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 82.9k | { | 166 | 82.9k | return x.get_(type_t<U>{}); | 167 | 82.9k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type&) Line | Count | Source | 165 | 28.2k | { | 166 | 28.2k | return x.get_(type_t<U>{}); | 167 | 28.2k | } |
|
168 | | template <typename U> |
169 | | friend decltype(auto) get(const type& x) |
170 | 1.69G | { |
171 | 1.69G | return x.get_(type_t<U>{}); |
172 | 1.69G | } decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 774M | { | 171 | 774M | return x.get_(type_t<U>{}); | 172 | 774M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 54.8M | { | 171 | 54.8M | return x.get_(type_t<U>{}); | 172 | 54.8M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 164k | { | 171 | 164k | return x.get_(type_t<U>{}); | 172 | 164k | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 29.1M | { | 171 | 29.1M | return x.get_(type_t<U>{}); | 172 | 29.1M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.21M | { | 171 | 1.21M | return x.get_(type_t<U>{}); | 172 | 1.21M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 20.7k | { | 171 | 20.7k | return x.get_(type_t<U>{}); | 172 | 20.7k | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 13.0M | { | 171 | 13.0M | return x.get_(type_t<U>{}); | 172 | 13.0M | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 2.10M | { | 171 | 2.10M | return x.get_(type_t<U>{}); | 172 | 2.10M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 20.5k | { | 171 | 20.5k | return x.get_(type_t<U>{}); | 172 | 20.5k | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.56M | { | 171 | 1.56M | return x.get_(type_t<U>{}); | 172 | 1.56M | } |
decltype(auto) immer::detail::csl::get<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.43M | { | 171 | 1.43M | return x.get_(type_t<U>{}); | 172 | 1.43M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 16.5M | { | 171 | 16.5M | return x.get_(type_t<U>{}); | 172 | 16.5M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 986k | { | 171 | 986k | return x.get_(type_t<U>{}); | 172 | 986k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 20.8k | { | 171 | 20.8k | return x.get_(type_t<U>{}); | 172 | 20.8k | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 9.08M | { | 171 | 9.08M | return x.get_(type_t<U>{}); | 172 | 9.08M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 761k | { | 171 | 761k | return x.get_(type_t<U>{}); | 172 | 761k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 20.1k | { | 171 | 20.1k | return x.get_(type_t<U>{}); | 172 | 20.1k | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 14.6M | { | 171 | 14.6M | return x.get_(type_t<U>{}); | 172 | 14.6M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 41.4k | { | 171 | 41.4k | return x.get_(type_t<U>{}); | 172 | 41.4k | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 14.2M | { | 171 | 14.2M | return x.get_(type_t<U>{}); | 172 | 14.2M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 2.14M | { | 171 | 2.14M | return x.get_(type_t<U>{}); | 172 | 2.14M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 14.4k | { | 171 | 14.4k | return x.get_(type_t<U>{}); | 172 | 14.4k | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 5.93M | { | 171 | 5.93M | return x.get_(type_t<U>{}); | 172 | 5.93M | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.08M | { | 171 | 1.08M | return x.get_(type_t<U>{}); | 172 | 1.08M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 8.80k | { | 171 | 8.80k | return x.get_(type_t<U>{}); | 172 | 8.80k | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 13.2M | { | 171 | 13.2M | return x.get_(type_t<U>{}); | 172 | 13.2M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 2.20M | { | 171 | 2.20M | return x.get_(type_t<U>{}); | 172 | 2.20M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 15.0k | { | 171 | 15.0k | return x.get_(type_t<U>{}); | 172 | 15.0k | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 10.5M | { | 171 | 10.5M | return x.get_(type_t<U>{}); | 172 | 10.5M | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::values_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.11M | { | 171 | 1.11M | return x.get_(type_t<U>{}); | 172 | 1.11M | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 119M | { | 171 | 119M | return x.get_(type_t<U>{}); | 172 | 119M | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 12.3M | { | 171 | 12.3M | return x.get_(type_t<U>{}); | 172 | 12.3M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 127k | { | 171 | 127k | return x.get_(type_t<U>{}); | 172 | 127k | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 20.7M | { | 171 | 20.7M | return x.get_(type_t<U>{}); | 172 | 20.7M | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::values_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.83M | { | 171 | 1.83M | return x.get_(type_t<U>{}); | 172 | 1.83M | } |
decltype(auto) immer::detail::csl::get<immer::refcount_policy>(immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 707k | { | 171 | 707k | return x.get_(type_t<U>{}); | 172 | 707k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 251 | { | 171 | 251 | return x.get_(type_t<U>{}); | 172 | 251 | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 25.4M | { | 171 | 25.4M | return x.get_(type_t<U>{}); | 172 | 25.4M | } |
decltype(auto) immer::detail::csl::get<immer::no_refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::relaxed_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 1.29M | { | 171 | 1.29M | return x.get_(type_t<U>{}); | 172 | 1.29M | } |
decltype(auto) immer::detail::csl::get<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 18.0M | { | 171 | 18.0M | return x.get_(type_t<U>{}); | 172 | 18.0M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 507M | { | 171 | 507M | return x.get_(type_t<U>{}); | 172 | 507M | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 290k | { | 171 | 290k | return x.get_(type_t<U>{}); | 172 | 290k | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 13.5M | { | 171 | 13.5M | return x.get_(type_t<U>{}); | 172 | 13.5M | } |
decltype(auto) immer::detail::csl::get<immer::unsafe_refcount_policy>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 925k | { | 171 | 925k | return x.get_(type_t<U>{}); | 172 | 925k | } |
decltype(auto) immer::detail::csl::get<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type const&) Line | Count | Source | 170 | 16.2k | { | 171 | 16.2k | return x.get_(type_t<U>{}); | 172 | 16.2k | } |
|
173 | | |
174 | | T& get_(type_t<T>) { return d; } |
175 | | const T& get_(type_t<T>) const { return d; } |
176 | | |
177 | | template <typename U> |
178 | | auto get_(type_t<U> t) -> decltype(auto) |
179 | 198M | { |
180 | 198M | return n.get_(t); |
181 | 198M | } decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 54.0M | { | 180 | 54.0M | return n.get_(t); | 181 | 54.0M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 62.7M | { | 180 | 62.7M | return n.get_(t); | 181 | 62.7M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 48.9k | { | 180 | 48.9k | return n.get_(t); | 181 | 48.9k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 46.4k | { | 180 | 46.4k | return n.get_(t); | 181 | 46.4k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 49.8k | { | 180 | 49.8k | return n.get_(t); | 181 | 49.8k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 27.5k | { | 180 | 27.5k | return n.get_(t); | 181 | 27.5k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::type_t<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>) Line | Count | Source | 179 | 12.7k | { | 180 | 12.7k | return n.get_(t); | 181 | 12.7k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 53.5k | { | 180 | 53.5k | return n.get_(t); | 181 | 53.5k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 31.8k | { | 180 | 31.8k | return n.get_(t); | 181 | 31.8k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 41.9k | { | 180 | 41.9k | return n.get_(t); | 181 | 41.9k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 36.1k | { | 180 | 36.1k | return n.get_(t); | 181 | 36.1k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 2.80M | { | 180 | 2.80M | return n.get_(t); | 181 | 2.80M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 41.9k | { | 180 | 41.9k | return n.get_(t); | 181 | 41.9k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 27.3k | { | 180 | 27.3k | return n.get_(t); | 181 | 27.3k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 38.6k | { | 180 | 38.6k | return n.get_(t); | 181 | 38.6k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 23.8k | { | 180 | 23.8k | return n.get_(t); | 181 | 23.8k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 58.7k | { | 180 | 58.7k | return n.get_(t); | 181 | 58.7k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 34.2k | { | 180 | 34.2k | return n.get_(t); | 181 | 34.2k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 11.5M | { | 180 | 11.5M | return n.get_(t); | 181 | 11.5M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 19.4M | { | 180 | 19.4M | return n.get_(t); | 181 | 19.4M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) Line | Count | Source | 179 | 3.85k | { | 180 | 3.85k | return n.get_(t); | 181 | 3.85k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::relaxed_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::type_t<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>) Line | Count | Source | 179 | 2.48M | { | 180 | 2.48M | return n.get_(t); | 181 | 2.48M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::type_t<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>) Line | Count | Source | 179 | 3.65M | { | 180 | 3.65M | return n.get_(t); | 181 | 3.65M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 40.6M | { | 180 | 40.6M | return n.get_(t); | 181 | 40.6M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 82.9k | { | 180 | 82.9k | return n.get_(t); | 181 | 82.9k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) Line | Count | Source | 179 | 28.2k | { | 180 | 28.2k | return n.get_(t); | 181 | 28.2k | } |
|
182 | | template <typename U> |
183 | | auto get_(type_t<U> t) const -> decltype(auto) |
184 | 1.69G | { |
185 | 1.69G | return n.get_(t); |
186 | 1.69G | } decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 774M | { | 185 | 774M | return n.get_(t); | 186 | 774M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 54.8M | { | 185 | 54.8M | return n.get_(t); | 186 | 54.8M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 164k | { | 185 | 164k | return n.get_(t); | 186 | 164k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 29.1M | { | 185 | 29.1M | return n.get_(t); | 186 | 29.1M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 1.21M | { | 185 | 1.21M | return n.get_(t); | 186 | 1.21M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 20.7k | { | 185 | 20.7k | return n.get_(t); | 186 | 20.7k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 13.0M | { | 185 | 13.0M | return n.get_(t); | 186 | 13.0M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 2.10M | { | 185 | 2.10M | return n.get_(t); | 186 | 2.10M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) const Line | Count | Source | 184 | 20.5k | { | 185 | 20.5k | return n.get_(t); | 186 | 20.5k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 1.56M | { | 185 | 1.56M | return n.get_(t); | 186 | 1.56M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::type_t<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>) const Line | Count | Source | 184 | 1.43M | { | 185 | 1.43M | return n.get_(t); | 186 | 1.43M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 16.5M | { | 185 | 16.5M | return n.get_(t); | 186 | 16.5M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 986k | { | 185 | 986k | return n.get_(t); | 186 | 986k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 20.8k | { | 185 | 20.8k | return n.get_(t); | 186 | 20.8k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 9.08M | { | 185 | 9.08M | return n.get_(t); | 186 | 9.08M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 761k | { | 185 | 761k | return n.get_(t); | 186 | 761k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 20.1k | { | 185 | 20.1k | return n.get_(t); | 186 | 20.1k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 14.6M | { | 185 | 14.6M | return n.get_(t); | 186 | 14.6M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 41.4k | { | 185 | 41.4k | return n.get_(t); | 186 | 41.4k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 14.2M | { | 185 | 14.2M | return n.get_(t); | 186 | 14.2M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 2.14M | { | 185 | 2.14M | return n.get_(t); | 186 | 2.14M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 14.4k | { | 185 | 14.4k | return n.get_(t); | 186 | 14.4k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 5.93M | { | 185 | 5.93M | return n.get_(t); | 186 | 5.93M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 1.08M | { | 185 | 1.08M | return n.get_(t); | 186 | 1.08M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<unsigned long>, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) const Line | Count | Source | 184 | 8.80k | { | 185 | 8.80k | return n.get_(t); | 186 | 8.80k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 13.2M | { | 185 | 13.2M | return n.get_(t); | 186 | 13.2M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 2.20M | { | 185 | 2.20M | return n.get_(t); | 186 | 2.20M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 15.0k | { | 185 | 15.0k | return n.get_(t); | 186 | 15.0k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 10.5M | { | 185 | 10.5M | return n.get_(t); | 186 | 10.5M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<unsigned long, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::values_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 1.11M | { | 185 | 1.11M | return n.get_(t); | 186 | 1.11M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 119M | { | 185 | 119M | return n.get_(t); | 186 | 119M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 12.3M | { | 185 | 12.3M | return n.get_(t); | 186 | 12.3M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::impl_data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) const Line | Count | Source | 184 | 127k | { | 185 | 127k | return n.get_(t); | 186 | 127k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 20.7M | { | 185 | 20.7M | return n.get_(t); | 186 | 20.7M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<unsigned long, int>, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map<unsigned long, int, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::values_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 1.83M | { | 185 | 1.83M | return n.get_(t); | 186 | 1.83M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::refcount_policy>(immer::detail::csl::type_t<immer::refcount_policy>) const Line | Count | Source | 184 | 707k | { | 185 | 707k | return n.get_(t); | 186 | 707k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::arrays::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data_t, immer::detail::csl::member<immer::refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap, 1024ul> >::type::ownee>) const Line | Count | Source | 184 | 251 | { | 185 | 251 | return n.get_(t); | 186 | 251 | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 25.4M | { | 185 | 25.4M | return n.get_(t); | 186 | 25.4M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::relaxed_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_refcount_policy>(immer::detail::csl::type_t<immer::no_refcount_policy>) const Line | Count | Source | 184 | 1.29M | { | 185 | 1.29M | return n.get_(t); | 186 | 1.29M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::gc_heap>, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit<immer::no_refcount_policy, immer::detail::csl::member<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee, void>::type>::type>::type::get_<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>(immer::detail::csl::type_t<immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap> >::type::ownee>) const Line | Count | Source | 184 | 18.0M | { | 185 | 18.0M | return n.get_(t); | 186 | 18.0M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 507M | { | 185 | 507M | return n.get_(t); | 186 | 507M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::rbts::node<int, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 290k | { | 185 | 290k | return n.get_(t); | 186 | 290k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 13.5M | { | 185 | 13.5M | return n.get_(t); | 186 | 13.5M | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::unsafe_refcount_policy>(immer::detail::csl::type_t<immer::unsafe_refcount_policy>) const Line | Count | Source | 184 | 925k | { | 185 | 925k | return n.get_(t); | 186 | 925k | } |
decltype(auto) immer::detail::csl::member_two<immer::detail::hamts::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::box<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to<void>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::impl_data_t, immer::detail::csl::member<immer::unsafe_refcount_policy, immer::detail::csl::inherit<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee, void>::type>::type>::type::get_<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>(immer::detail::csl::type_t<immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap> >::type::ownee>) const Line | Count | Source | 184 | 16.2k | { | 185 | 16.2k | return n.get_(t); | 186 | 16.2k | } |
|
187 | | }; |
188 | | }; |
189 | | |
190 | | template <typename... Ts> |
191 | | struct combine_standard_layout_aux; |
192 | | |
193 | | template <typename T> |
194 | | struct combine_standard_layout_aux<T> |
195 | | { |
196 | | static_assert(std::is_standard_layout<T>::value, ""); |
197 | | |
198 | | using type = typename std::conditional_t<std::is_empty<T>::value, |
199 | | csl::inherit<T>, |
200 | | csl::member<T>>::type; |
201 | | }; |
202 | | |
203 | | template <typename T, typename... Ts> |
204 | | struct combine_standard_layout_aux<T, Ts...> |
205 | | { |
206 | | static_assert(std::is_standard_layout<T>::value, ""); |
207 | | |
208 | | using this_t = T; |
209 | | using next_t = typename combine_standard_layout_aux<Ts...>::type; |
210 | | |
211 | | static constexpr auto empty_this = std::is_empty<this_t>::value; |
212 | | static constexpr auto empty_next = std::is_empty<next_t>::value; |
213 | | |
214 | | using type = typename std::conditional_t< |
215 | | empty_this, |
216 | | inherit<this_t, next_t>, |
217 | | std::conditional_t<empty_next, |
218 | | member<this_t, next_t>, |
219 | | member_two<this_t, next_t>>>::type; |
220 | | }; |
221 | | |
222 | | } // namespace csl |
223 | | |
224 | | using csl::get; |
225 | | |
226 | | template <typename... Ts> |
227 | | struct combine_standard_layout |
228 | | { |
229 | | using type = typename csl::combine_standard_layout_aux<Ts...>::type; |
230 | | #if !IMMER_BROKEN_STANDARD_LAYOUT_DETECTION |
231 | | static_assert(std::is_standard_layout<type>::value, ""); |
232 | | #endif |
233 | | }; |
234 | | |
235 | | } // namespace detail |
236 | | } // namespace immer |