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

Classes

struct  bit_cast_equivalence_overload
 
struct  identity_or_underlying_type
 
struct  identity_or_underlying_type< T, true >
 
struct  padded_erasure_object
 
struct  static_cast_dest_larger_overload
 
struct  static_cast_dest_smaller_overload
 
struct  union_cast_dest_larger_overload
 
struct  union_cast_dest_smaller_overload
 

Typedefs

template<class To , class From >
using is_erasure_castable = std::integral_constant< bool, traits::is_move_relocating< To >::value &&traits::is_move_relocating< From >::value >
 
template<class OfSize , class OfSign >
using erasure_integer_type = typename std::conditional< std::is_signed< typename identity_or_underlying_type< OfSign >::type >::value, typename std::make_signed< typename identity_or_underlying_type< OfSize >::type >::type, typename std::make_unsigned< typename identity_or_underlying_type< OfSize >::type >::type >::type
 

Typedef Documentation

◆ is_erasure_castable

template<class To , class From >
using quickcpplib::_xxx::erasure_cast::detail::is_erasure_castable = typedef std::integral_constant<bool, traits::is_move_relocating<To>::value && traits::is_move_relocating<From>::value>

◆ erasure_integer_type

template<class OfSize , class OfSign >
using quickcpplib::_xxx::erasure_cast::detail::erasure_integer_type = typedef typename std::conditional<std::is_signed<typename identity_or_underlying_type<OfSign>::type>::value, typename std::make_signed<typename identity_or_underlying_type<OfSize>::type>::type, typename std::make_unsigned<typename identity_or_underlying_type<OfSize>::type>::type>::type