|
9 | 9 |
|
10 | 10 | #include <nanobench.h> |
11 | 11 |
|
12 | | -template <auto data, typename T, bool indirect = true, |
13 | | - std::size_t max_search_len = 2> |
14 | | -constexpr auto make_pseudo_pext() { |
15 | | - constexpr static auto input_data = []() { |
16 | | - std::array<lookup::entry<T, T>, data.size()> d{}; |
17 | | - |
18 | | - for (auto i = std::size_t{}; i < d.size(); i++) { |
19 | | - d[i] = {static_cast<T>(data[i].first), |
20 | | - static_cast<T>(data[i].second)}; |
21 | | - } |
| 12 | +namespace pp { |
| 13 | +template <auto data, typename T> |
| 14 | +constexpr auto input_data = []() { |
| 15 | + std::array<lookup::entry<T, T>, data.size()> d{}; |
22 | 16 |
|
23 | | - return d; |
24 | | - }(); |
| 17 | + for (auto i = std::size_t{}; i < d.size(); i++) { |
| 18 | + d[i] = {static_cast<T>(data[i].first), static_cast<T>(data[i].second)}; |
| 19 | + } |
25 | 20 |
|
26 | | - constexpr static auto map = |
27 | | - lookup::pseudo_pext_lookup<indirect, max_search_len>::make( |
28 | | - CX_VALUE(lookup::input{0, input_data})); |
| 21 | + return d; |
| 22 | +}(); |
| 23 | +} // namespace pp |
29 | 24 |
|
30 | | - return map; |
| 25 | +template <auto data, typename T, bool indirect = true, |
| 26 | + std::size_t max_search_len = 2> |
| 27 | +constexpr auto make_pseudo_pext() { |
| 28 | + return lookup::pseudo_pext_lookup<indirect, max_search_len>::make( |
| 29 | + CX_VALUE(lookup::input{0, pp::input_data<data, T>})); |
31 | 30 | } |
32 | 31 |
|
33 | 32 | template <auto data, typename T, bool indirect = true, |
|
0 commit comments