QuickCppLib 0.10
Eliminate all the tedious hassle when making state-of-the-art C++ 14 - 23 libraries!
Loading...
Searching...
No Matches
quickcpplib::_xxx::bit_cast::detail Namespace Reference

Classes

union  bit_cast_union
 
struct  memmove_overload
 
struct  static_cast_overload
 
struct  union_cast_overload
 

Typedefs

template<class T >
using is_integral_or_enum = std::integral_constant< bool, std::is_integral< T >::value||std::is_enum< T >::value >
 
template<class To , class From >
using is_static_castable = std::integral_constant< bool, is_integral_or_enum< To >::value &&is_integral_or_enum< From >::value >
 
template<class To , class From >
using is_union_castable = std::integral_constant< bool, !is_static_castable< To, From >::value &&!std::is_array< To >::value &&!std::is_array< From >::value >
 
template<class To , class From >
using is_bit_castable = std::integral_constant< bool, sizeof(To)==sizeof(From) &&traits::is_move_relocating< To >::value &&traits::is_move_relocating< From >::value >
 

Typedef Documentation

◆ is_integral_or_enum

template<class T >
using quickcpplib::_xxx::bit_cast::detail::is_integral_or_enum = typedef std::integral_constant<bool, std::is_integral<T>::value || std::is_enum<T>::value>

◆ is_static_castable

template<class To , class From >
using quickcpplib::_xxx::bit_cast::detail::is_static_castable = typedef std::integral_constant<bool, is_integral_or_enum<To>::value && is_integral_or_enum<From>::value>

◆ is_union_castable

template<class To , class From >
using quickcpplib::_xxx::bit_cast::detail::is_union_castable = typedef std::integral_constant<bool, !is_static_castable<To, From>::value && !std::is_array<To>::value && !std::is_array<From>::value>

◆ is_bit_castable

template<class To , class From >
using quickcpplib::_xxx::bit_cast::detail::is_bit_castable = typedef std::integral_constant<bool, sizeof(To) == sizeof(From) && traits::is_move_relocating<To>::value && traits::is_move_relocating<From>::value>