|
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