Apache Arrow (C++)
A columnar in-memory analytics layer designed to accelerate big data.
Classes | Namespaces | Macros | Typedefs
type_traits.h File Reference
#include <memory>
#include <type_traits>
#include "arrow/type_fwd.h"
#include "arrow/util/bit-util.h"

Go to the source code of this file.

Classes

struct  arrow::TypeTraits< T >
 
struct  arrow::TypeTraits< NullType >
 
struct  arrow::TypeTraits< UInt8Type >
 
struct  arrow::TypeTraits< Int8Type >
 
struct  arrow::TypeTraits< UInt16Type >
 
struct  arrow::TypeTraits< Int16Type >
 
struct  arrow::TypeTraits< UInt32Type >
 
struct  arrow::TypeTraits< Int32Type >
 
struct  arrow::TypeTraits< UInt64Type >
 
struct  arrow::TypeTraits< Int64Type >
 
struct  arrow::TypeTraits< Date64Type >
 
struct  arrow::TypeTraits< Date32Type >
 
struct  arrow::TypeTraits< TimestampType >
 
struct  arrow::TypeTraits< Time32Type >
 
struct  arrow::TypeTraits< Time64Type >
 
struct  arrow::TypeTraits< HalfFloatType >
 
struct  arrow::TypeTraits< FloatType >
 
struct  arrow::TypeTraits< DoubleType >
 
struct  arrow::TypeTraits< Decimal128Type >
 
struct  arrow::TypeTraits< BooleanType >
 
struct  arrow::TypeTraits< StringType >
 
struct  arrow::TypeTraits< BinaryType >
 
struct  arrow::TypeTraits< FixedSizeBinaryType >
 
struct  arrow::TypeTraits< ListType >
 
struct  arrow::TypeTraits< StructType >
 
struct  arrow::TypeTraits< UnionType >
 
struct  arrow::TypeTraits< DictionaryType >
 
struct  arrow::has_c_type< T >
 
struct  arrow::is_8bit_int< T >
 
struct  arrow::IsUnsignedInt< T >
 
struct  arrow::IsSignedInt< T >
 
struct  arrow::IsInteger< T >
 
struct  arrow::IsFloatingPoint< T >
 
struct  arrow::IsNumeric< T >
 

Namespaces

 arrow
 Top-level namespace for Apache Arrow C++ API.
 

Macros

#define GET_ATTR(ATTR_NAME, DEFAULT)
 
#define PRIMITIVE_TRAITS(T)
 

Typedefs

template<typename T >
using arrow::is_number = std::is_base_of< Number, T >
 
template<typename T >
using arrow::enable_if_8bit_int = typename std::enable_if< is_8bit_int< T >::value >::type
 
template<typename T >
using arrow::enable_if_primitive_ctype = typename std::enable_if< std::is_base_of< PrimitiveCType, T >::value >::type
 
template<typename T >
using arrow::enable_if_date = typename std::enable_if< std::is_base_of< DateType, T >::value >::type
 
template<typename T >
using arrow::enable_if_integer = typename std::enable_if< std::is_base_of< Integer, T >::value >::type
 
template<typename T >
using arrow::enable_if_signed_integer = typename std::enable_if< std::is_base_of< Integer, T >::value &&std::is_signed< typename T::c_type >::value >::type
 
template<typename T >
using arrow::enable_if_unsigned_integer = typename std::enable_if< std::is_base_of< Integer, T >::value &&std::is_unsigned< typename T::c_type >::value >::type
 
template<typename T >
using arrow::enable_if_floating_point = typename std::enable_if< std::is_base_of< FloatingPoint, T >::value >::type
 
template<typename T >
using arrow::enable_if_time = typename std::enable_if< std::is_base_of< TimeType, T >::value >::type
 
template<typename T >
using arrow::enable_if_timestamp = typename std::enable_if< std::is_base_of< TimestampType, T >::value >::type
 
template<typename T >
using arrow::enable_if_has_c_type = typename std::enable_if< has_c_type< T >::value >::type
 
template<typename T >
using arrow::enable_if_null = typename std::enable_if< std::is_same< NullType, T >::value >::type
 
template<typename T >
using arrow::enable_if_binary = typename std::enable_if< std::is_base_of< BinaryType, T >::value >::type
 
template<typename T >
using arrow::enable_if_boolean = typename std::enable_if< std::is_same< BooleanType, T >::value >::type
 
template<typename T >
using arrow::enable_if_fixed_size_binary = typename std::enable_if< std::is_base_of< FixedSizeBinaryType, T >::value >::type
 
template<typename T >
using arrow::enable_if_list = typename std::enable_if< std::is_base_of< ListType, T >::value >::type
 
template<typename T >
using arrow::enable_if_number = typename std::enable_if< is_number< T >::value >::type
 

Macro Definition Documentation

◆ GET_ATTR

#define GET_ATTR (   ATTR_NAME,
  DEFAULT 
)
Value:
template <typename T, typename Enable = void> \
struct GetAttr_##ATTR_NAME { \
using type = DEFAULT; \
}; \
\
template <typename T> \
struct GetAttr_##ATTR_NAME<T, typename as_void<typename T::ATTR_NAME>::type> { \
using type = typename T::ATTR_NAME; \
};

◆ PRIMITIVE_TRAITS

#define PRIMITIVE_TRAITS (   T)
Value:
using TypeClass = \
typename std::conditional<std::is_base_of<DataType, T>::value, T, \
typename detail::GetAttr_TypeClass<T>::type>::type; \
using c_type = typename detail::GetAttr_c_type<TypeClass>::type