Skip to content

Commit fbaeac0

Browse files
committed
Use std::array in level_comparison dispatch
1 parent 210a856 commit fbaeac0

2 files changed

Lines changed: 12 additions & 11 deletions

File tree

cpp/src/arrow/util/dispatch_internal.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#pragma once
1919

2020
#include <utility>
21-
#include <vector>
2221

2322
#include "arrow/status.h"
2423
#include "arrow/util/cpu_info.h"

cpp/src/parquet/level_comparison.cc

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18+
#include <array>
19+
1820
#include "parquet/level_comparison.h"
1921

2022
#if defined(ARROW_HAVE_RUNTIME_AVX2)
@@ -25,8 +27,6 @@
2527
#include "parquet/level_comparison_inc.h"
2628
#undef PARQUET_IMPL_NAMESPACE
2729

28-
#include <vector>
29-
3030
#include "arrow/util/dispatch_internal.h"
3131

3232
namespace parquet::internal {
@@ -40,25 +40,27 @@ using ::arrow::internal::DynamicDispatch;
4040

4141
struct GreaterThanDynamicFunction {
4242
using FunctionType = decltype(&GreaterThanBitmap);
43+
using Implementation = std::pair<DispatchLevel, FunctionType>;
4344

44-
static std::vector<std::pair<DispatchLevel, FunctionType>> implementations() {
45-
return {{DispatchLevel::NONE, standard::GreaterThanBitmapImpl}
45+
static constexpr auto implementations() {
46+
return std::array{
47+
Implementation{DispatchLevel::NONE, standard::GreaterThanBitmapImpl},
4648
#if defined(ARROW_HAVE_RUNTIME_AVX2)
47-
,
48-
{DispatchLevel::AVX2, GreaterThanBitmapAvx2}
49+
Implementation{DispatchLevel::AVX2, GreaterThanBitmapAvx2},
4950
#endif
5051
};
5152
}
5253
};
5354

5455
struct MinMaxDynamicFunction {
5556
using FunctionType = decltype(&FindMinMax);
57+
using Implementation = std::pair<DispatchLevel, FunctionType>;
5658

57-
static std::vector<std::pair<DispatchLevel, FunctionType>> implementations() {
58-
return {{DispatchLevel::NONE, standard::FindMinMaxImpl}
59+
static constexpr auto implementations() {
60+
return std::array{
61+
Implementation{DispatchLevel::NONE, standard::FindMinMaxImpl},
5962
#if defined(ARROW_HAVE_RUNTIME_AVX2)
60-
,
61-
{DispatchLevel::AVX2, FindMinMaxAvx2}
63+
Implementation{DispatchLevel::AVX2, FindMinMaxAvx2},
6264
#endif
6365
};
6466
}

0 commit comments

Comments
 (0)