line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
#include "error.h" |
2
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
namespace panda { namespace error { |
4
|
|
|
|
|
|
|
|
5
|
15
|
|
|
|
|
|
const NestedCategory& get_nested_categoty(const std::error_category& self, const NestedCategory* next) { |
6
|
15
|
100
|
|
|
|
|
static thread_local std::map, NestedCategory> cache; |
7
|
15
|
50
|
|
|
|
|
auto iter = cache.find({&self, next}); |
8
|
15
|
100
|
|
|
|
|
if (iter != cache.end()) { |
9
|
11
|
|
|
|
|
|
return iter->second; |
10
|
|
|
|
|
|
|
} else { |
11
|
4
|
50
|
|
|
|
|
return cache.emplace(std::piecewise_construct, |
12
|
4
|
|
|
|
|
|
std::forward_as_tuple(&self, next), |
13
|
19
|
|
|
|
|
|
std::forward_as_tuple(self, next)).first->second; |
14
|
|
|
|
|
|
|
} |
15
|
|
|
|
|
|
|
} |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
}} |