18#ifndef __FPSDK_COMMON_TYPES_HPP__ 
   19#define __FPSDK_COMMON_TYPES_HPP__ 
   46template <typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>::type>
 
   47constexpr typename std::underlying_type<T>::type 
EnumToVal(T enum_val)
 
   49    return static_cast<typename std::underlying_type<T>::type
>(enum_val);
 
   68constexpr std::size_t 
NumOf(
const T& arr)
 
   70    return sizeof(arr) / 
sizeof(arr[0]);
 
   88    return std::tuple_size<T>{};
 
  102    NoCopyNoMove& operator=(
const NoCopyNoMove&) = 
delete;
 
  103    NoCopyNoMove(
const NoCopyNoMove&)            = 
delete;
 
  104    NoCopyNoMove(NoCopyNoMove&&)                 = 
delete;
 
  105    NoCopyNoMove& operator=(NoCopyNoMove&&)      = 
delete;
 
  110#  define UNUSED(thing) (void)thing 
  115#  define STRINGIFY(x) _STRINGIFY(x) 
  120#  define CONCAT(a, b) _CONCAT(a, b) 
  125#  define SIZEOF_FIELD(_type_, _member_) sizeof((((_type_*)NULL)->_member_)) 
  130#  define _STRINGIFY(x) #x 
  131#  define _CONCAT(a, b) a##b 
constexpr std::size_t NumOf()
Get number of elements in array type.
 
constexpr std::underlying_type< T >::type EnumToVal(T enum_val)
Convert enum class constant to the underlying integral type value.
 
Fixposition SDK: Common library.