@@ -203,14 +203,9 @@ TEST(TestScalar, IdentityCast) {
203203 */
204204}
205205
206- template <typename ARROW_TYPE>
207- struct NumericHelper {
208- using ArgType = typename ARROW_TYPE::c_type;
209- };
210- template <>
211- struct NumericHelper <HalfFloatType> {
212- using ArgType = Float16;
213- };
206+ template <typename ArrowType>
207+ using NumericArgType = std::conditional_t <is_half_float_type<ArrowType>::value, Float16,
208+ typename ArrowType::c_type>;
214209
215210template <typename T>
216211class TestNumericScalar : public ::testing::Test {
@@ -224,7 +219,7 @@ using NumericArrowTypesPlusHalfFloat =
224219TYPED_TEST_SUITE (TestNumericScalar, NumericArrowTypesPlusHalfFloat);
225220
226221TYPED_TEST (TestNumericScalar, Basics) {
227- using T = typename NumericHelper <TypeParam>::ArgType ;
222+ using T = NumericArgType <TypeParam>;
228223 using ScalarType = typename TypeTraits<TypeParam>::ScalarType;
229224
230225 T value = static_cast <T>(1 );
@@ -291,7 +286,7 @@ TYPED_TEST(TestNumericScalar, Basics) {
291286}
292287
293288TYPED_TEST (TestNumericScalar, Hashing) {
294- using T = typename NumericHelper <TypeParam>::ArgType ;
289+ using T = NumericArgType <TypeParam>;
295290 using ScalarType = typename TypeTraits<TypeParam>::ScalarType;
296291
297292 std::unordered_set<std::shared_ptr<Scalar>, Scalar::Hash, Scalar::PtrsEqual> set;
@@ -307,7 +302,7 @@ TYPED_TEST(TestNumericScalar, Hashing) {
307302}
308303
309304TYPED_TEST (TestNumericScalar, MakeScalar) {
310- using T = typename NumericHelper <TypeParam>::ArgType ;
305+ using T = NumericArgType <TypeParam>;
311306 using ScalarType = typename TypeTraits<TypeParam>::ScalarType;
312307 auto type = TypeTraits<TypeParam>::type_singleton ();
313308
@@ -323,8 +318,7 @@ TYPED_TEST(TestNumericScalar, MakeScalar) {
323318template <typename T>
324319class TestRealScalar : public ::testing::Test {
325320 public:
326- using ValueType =
327- std::conditional_t <is_half_float_type<T>::value, Float16, typename T::c_type>;
321+ using ValueType = NumericArgType<T>;
328322 using ScalarType = typename TypeTraits<T>::ScalarType;
329323
330324 void SetUp () {
0 commit comments