OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Meta Namespace Reference

Namespaces

 HasRightShift std
 
 HasRightShiftAssign=std
 

Classes

struct  declval< Arg & >())> >
 
struct  declval< Arg & >())> >
 
struct  declval< Type & >()<< std::declval< Arg & >())> >
 
struct  declval< Type & >()<<=std::declval< Arg & >())> >
 
struct  HasAddressOf
 
struct  HasAddressOf< Type, std::void_t< decltype(&std::declval< Type & >())> >
 
struct  HasAsArray
 
struct  HasBitwiseAnd
 
struct  HasBitwiseAnd< Type, Arg, std::void_t< decltype(std::declval< Type & >()&std::declval< Arg & >())> >
 
struct  HasBitwiseAndAssign
 
struct  HasBitwiseAndAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >() &=std::declval< Arg & >())> >
 
struct  HasBitwiseOr
 
struct  HasBitwiseOr< Type, Arg, std::void_t< decltype(std::declval< Type & >()|std::declval< Arg & >())> >
 
struct  HasBitwiseOrAssign
 
struct  HasBitwiseOrAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >()|=std::declval< Arg & >())> >
 
struct  HasBitwiseXor
 
struct  HasBitwiseXor< Type, Arg, std::void_t< decltype(std::declval< Type & >() ^ std::declval< Arg & >())> >
 
struct  HasBitwiseXorAssign
 
struct  HasBitwiseXorAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >() ^=std::declval< Arg & >())> >
 
struct  HasComplement
 
struct  HasComplement< Type, std::void_t< decltype(~std::declval< Type & >())> >
 
struct  HasDivide
 
struct  HasDivide< Type, Arg, std::void_t< decltype(std::declval< Type & >()/std::declval< Arg & >())> >
 
struct  HasDivideAssign
 
struct  HasDivideAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >()/=std::declval< Arg & >())> >
 
struct  HasEqualTo
 
struct  HasEqualTo< Type, Arg, std::void_t< decltype(std::declval< Type & >()==std::declval< Arg & >())> >
 
struct  HasGreaterThan
 
struct  HasGreaterThanEqual
 
struct  HasLeftShift
 
struct  HasLeftShiftAssign
 
struct  HasLessThan
 
struct  HasLessThanEqual
 
struct  HasLogicalAnd
 
struct  HasLogicalAnd< Type, Arg, std::void_t< decltype(std::declval< Type & >() &&std::declval< Arg & >())> >
 
struct  HasLogicalNot
 
struct  HasLogicalNot< Type, std::void_t< decltype(!std::declval< Type & >())> >
 
struct  HasLogicalOr
 
struct  HasLogicalOr< Type, Arg, std::void_t< decltype(std::declval< Type & >()||std::declval< Arg & >())> >
 
struct  HasMinus
 
struct  HasMinus< Type, Arg, std::void_t< decltype(std::declval< Type & >() - std::declval< Arg & >())> >
 
struct  HasMinusAssign
 
struct  HasMinusAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >() -=std::declval< Arg & >())> >
 
struct  HasModulus
 
struct  HasModulus< Type, Arg, std::void_t< decltype(std::declval< Type & >() % std::declval< Arg & >())> >
 
struct  HasModulusAssign
 
struct  HasModulusAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >() %=std::declval< Arg & >())> >
 
struct  HasMultiply
 
struct  HasMultiply< Type, Arg, std::void_t< decltype(std::declval< Type & >() *std::declval< Arg & >())> >
 
struct  HasMultiplyAssign
 
struct  HasMultiplyAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >() *=std::declval< Arg & >())> >
 
struct  HasNegate
 
struct  HasNegate< Type, std::void_t< decltype(-std::declval< Type & >())> >
 
struct  HasNotEqualTo
 
struct  HasNotEqualTo< Type, Arg, std::void_t< decltype(std::declval< Type & >() !=std::declval< Arg & >())> >
 
struct  HasOperatorBool
 
struct  HasOperatorBool< Type, std::void_t< decltype(!std::declval< Type & >(), std::declval< Type & >() ? 0 :0)> >
 
struct  HasOverloadedAddressOf
 
struct  HasOverloadedAddressOf< Type, std::void_t< decltype(std::declval< Type & >().operator&())> >
 
struct  HasPlus
 
struct  HasPlus< Type, Arg, std::void_t< decltype(std::declval< Type & >()+std::declval< Arg & >())> >
 
struct  HasPlusAssign
 
struct  HasPlusAssign< Type, Arg, std::void_t< decltype(std::declval< Type & >()+=std::declval< Arg & >())> >
 
struct  HasPostDecrement
 
struct  HasPostDecrement< Type, std::void_t< decltype(std::declval< Type & >() --)> >
 
struct  HasPostIncrement
 
struct  HasPostIncrement< Type, std::void_t< decltype(std::declval< Type & >()++)> >
 
struct  HasPreDecrement
 
struct  HasPreDecrement< Type, std::void_t< decltype(--std::declval< Type & >())> >
 
struct  HasPreIncrement
 
struct  HasPreIncrement< Type, std::void_t< decltype(++std::declval< Type & >())> >
 
struct  HasRightShift
 
struct  HasRightShiftAssign
 
struct  HasUnaryPlus
 
struct  HasUnaryPlus< Type, std::void_t< decltype(+std::declval< Type & >())> >
 
struct  void_t< decltype(std::declval< Type & >()< std::declval< Arg & >())> >
 
struct  void_t< decltype(std::declval< Type & >()<=std::declval< Arg & >())> >
 

Variables

template<class Type >
constexpr bool HasUnaryPlus_v = HasUnaryPlus<Type>::value
 
template<class Type >
constexpr bool HasNegate_v = HasNegate<Type>::value
 
template<class Type >
constexpr bool HasPreIncrement_v = HasPreIncrement<Type>::value
 
template<class Type >
constexpr bool HasPreDecrement_v = HasPreDecrement<Type>::value
 
template<class Type >
constexpr bool HasOperatorBool_v = HasOperatorBool<Type>::value
 
template<class Type >
constexpr bool HasLogicalNot_v = HasLogicalNot<Type>::value
 
template<class Type >
constexpr bool HasComplement_v = HasComplement<Type>::value
 
template<class Type >
constexpr bool HasAddressOf_v = HasAddressOf<Type>::value
 
template<class Type >
constexpr bool HasOverloadedAddressOf_v = HasOverloadedAddressOf<Type>::value
 
template<class Type >
constexpr bool HasPostIncrement_v = HasPostIncrement<Type>::value
 
template<class Type >
constexpr bool HasPostDecrement_v = HasPostDecrement<Type>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasPlus_v = HasPlus<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasMinus_v = HasMinus<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasMultiply_v = HasMultiply<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasDivide_v = HasDivide<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasModulus_v = HasModulus<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasPlusAssign_v = HasPlusAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasMinusAssign_v = HasMinusAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasMultiplyAssign_v = HasMultiplyAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasDivideAssign_v = HasDivideAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasModulusAssign_v = HasModulusAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasEqualTo_v = HasEqualTo<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasNotEqualTo_v = HasNotEqualTo<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasLessThan_v = HasLessThan<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasLessThanEqual_v = HasLessThanEqual<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasGreaterThan_v = HasGreaterThan<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasGreaterThanEqual_v = HasGreaterThanEqual<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasBitwiseAnd_v = HasBitwiseAnd<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasBitwiseOr_v = HasBitwiseOr<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasBitwiseXor_v = HasBitwiseXor<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasBitwiseAndAssign_v = HasBitwiseAndAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasBitwiseOrAssign_v = HasBitwiseOrAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasBitwiseXorAssign_v = HasBitwiseXorAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasLeftShift_v = HasLeftShift<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasRightShift_v = HasRightShift<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasLeftShiftAssign_v = HasLeftShiftAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasRightShiftAssign_v = HasRightShiftAssign<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasLogicalAnd_v = HasLogicalAnd<Type, Type2>::value
 
template<class Type , class Type2 = Type>
constexpr bool HasLogicalOr_v = HasLogicalOr<Type, Type2>::value
 

Variable Documentation

◆ HasAddressOf_v

template<class Type >
constexpr bool s3d::Meta::HasAddressOf_v = HasAddressOf<Type>::value
constexpr

◆ HasBitwiseAnd_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasBitwiseAnd_v = HasBitwiseAnd<Type, Type2>::value
constexpr

◆ HasBitwiseAndAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasBitwiseAndAssign_v = HasBitwiseAndAssign<Type, Type2>::value
constexpr

◆ HasBitwiseOr_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasBitwiseOr_v = HasBitwiseOr<Type, Type2>::value
constexpr

◆ HasBitwiseOrAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasBitwiseOrAssign_v = HasBitwiseOrAssign<Type, Type2>::value
constexpr

◆ HasBitwiseXor_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasBitwiseXor_v = HasBitwiseXor<Type, Type2>::value
constexpr

◆ HasBitwiseXorAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasBitwiseXorAssign_v = HasBitwiseXorAssign<Type, Type2>::value
constexpr

◆ HasComplement_v

template<class Type >
constexpr bool s3d::Meta::HasComplement_v = HasComplement<Type>::value
constexpr

◆ HasDivide_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasDivide_v = HasDivide<Type, Type2>::value
constexpr

◆ HasDivideAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasDivideAssign_v = HasDivideAssign<Type, Type2>::value
constexpr

◆ HasEqualTo_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasEqualTo_v = HasEqualTo<Type, Type2>::value
constexpr

◆ HasGreaterThan_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasGreaterThan_v = HasGreaterThan<Type, Type2>::value
constexpr

◆ HasGreaterThanEqual_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasGreaterThanEqual_v = HasGreaterThanEqual<Type, Type2>::value
constexpr

◆ HasLeftShift_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasLeftShift_v = HasLeftShift<Type, Type2>::value
constexpr

◆ HasLeftShiftAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasLeftShiftAssign_v = HasLeftShiftAssign<Type, Type2>::value
constexpr

◆ HasLessThan_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasLessThan_v = HasLessThan<Type, Type2>::value
constexpr

◆ HasLessThanEqual_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasLessThanEqual_v = HasLessThanEqual<Type, Type2>::value
constexpr

◆ HasLogicalAnd_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasLogicalAnd_v = HasLogicalAnd<Type, Type2>::value
constexpr

◆ HasLogicalNot_v

template<class Type >
constexpr bool s3d::Meta::HasLogicalNot_v = HasLogicalNot<Type>::value
constexpr

◆ HasLogicalOr_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasLogicalOr_v = HasLogicalOr<Type, Type2>::value
constexpr

◆ HasMinus_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasMinus_v = HasMinus<Type, Type2>::value
constexpr

◆ HasMinusAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasMinusAssign_v = HasMinusAssign<Type, Type2>::value
constexpr

◆ HasModulus_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasModulus_v = HasModulus<Type, Type2>::value
constexpr

◆ HasModulusAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasModulusAssign_v = HasModulusAssign<Type, Type2>::value
constexpr

◆ HasMultiply_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasMultiply_v = HasMultiply<Type, Type2>::value
constexpr

◆ HasMultiplyAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasMultiplyAssign_v = HasMultiplyAssign<Type, Type2>::value
constexpr

◆ HasNegate_v

template<class Type >
constexpr bool s3d::Meta::HasNegate_v = HasNegate<Type>::value
constexpr

◆ HasNotEqualTo_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasNotEqualTo_v = HasNotEqualTo<Type, Type2>::value
constexpr

◆ HasOperatorBool_v

template<class Type >
constexpr bool s3d::Meta::HasOperatorBool_v = HasOperatorBool<Type>::value
constexpr

◆ HasOverloadedAddressOf_v

template<class Type >
constexpr bool s3d::Meta::HasOverloadedAddressOf_v = HasOverloadedAddressOf<Type>::value
constexpr

◆ HasPlus_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasPlus_v = HasPlus<Type, Type2>::value
constexpr

◆ HasPlusAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasPlusAssign_v = HasPlusAssign<Type, Type2>::value
constexpr

◆ HasPostDecrement_v

template<class Type >
constexpr bool s3d::Meta::HasPostDecrement_v = HasPostDecrement<Type>::value
constexpr

◆ HasPostIncrement_v

template<class Type >
constexpr bool s3d::Meta::HasPostIncrement_v = HasPostIncrement<Type>::value
constexpr

◆ HasPreDecrement_v

template<class Type >
constexpr bool s3d::Meta::HasPreDecrement_v = HasPreDecrement<Type>::value
constexpr

◆ HasPreIncrement_v

template<class Type >
constexpr bool s3d::Meta::HasPreIncrement_v = HasPreIncrement<Type>::value
constexpr

◆ HasRightShift_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasRightShift_v = HasRightShift<Type, Type2>::value
constexpr

◆ HasRightShiftAssign_v

template<class Type , class Type2 = Type>
constexpr bool s3d::Meta::HasRightShiftAssign_v = HasRightShiftAssign<Type, Type2>::value
constexpr

◆ HasUnaryPlus_v

template<class Type >
constexpr bool s3d::Meta::HasUnaryPlus_v = HasUnaryPlus<Type>::value
constexpr