datatype.h File Reference

Classes

class   UnregisteredDataTypeErrorInterface
struct   IsSimdElementType< T, CHECK >
struct   IsSimdElementType< T, typename SFINAEHelper< void, typename T::VectorStrideType >::type >
struct   SimdInfo
struct   SimdInfo::Compact
class   SimdBlock< T >
class   OpaquePtr< PTR >
class   PrivateOpaque< T, CHECK >
class   PrivateOpaque< T *, void >
class   PrivateOpaque< T, typename SFINAEHelper< void, typename T::ReferencedType >::type >
struct   AInt
struct   AUInt
struct   AFloat
struct   CheckedGetDataType< T, POLICY, NO_DECAY >
class   Opt< T >
class   DataTypeCache
class   DataTypeCacheInstance< T, POLICY, ELEMENTARY >
class   DataTypeCacheInstance< T, POLICY, true >
class   DataTypeCacheInstance< void, POLICY, true >
class   DataTypeCacheInstance< std::nullptr_t, POLICY, true >
struct   MemberTypeBase< T, typename >
struct   MemberTypeBase< T, typename std::enable_if< maxon::details::HasBaseHelper< T, InternedId, 0 >::value, typename SFINAEHelper< void, typename T::ValueType >::type >::type >
struct   MemberType< T, GENERIC_FOR_UNKNOWN_TYPE >
struct   MemberType< T &, GENERIC_FOR_UNKNOWN_TYPE >
struct   MemberType< T &&, GENERIC_FOR_UNKNOWN_TYPE >
struct   SubstituteReferenceByPointer< T >
struct   SubstituteReferenceByPointer< T & >
struct   SubstituteReferenceByPointer< T && >
struct   NamedTupleMembers
class   NamedTuple< T >
struct   NamedTuple< T >::Helper
struct   NamedTuple< T >::HelperStorage
class   TupleValue
class   FunctionDataType
struct   CheckedGetDataType< T, POLICY, false >

Namespaces

  maxon
  maxon::details

Macros

#define  PRIVATE_MAXON_DATATYPE_A (type, id)
#define  MAXON_DATATYPE_SCALAR (type, id)
#define  PRIVATE_MAXON_DATATYPE (type, id)
#define  MAXON_DATATYPE (type, id)
#define  PRIVATE_MAXON_DATATYPE_REGISTER (T, ret, flags)
#define  PRIVATE_MAXON_DATATYPE_REGISTER_ENUM (enumtype, cppname, id, size, flags, names, ...)
#define  MAXON_DATATYPE_REGISTER (type)
#define  PRIVATE_MAXON_DATATYPE_LOCAL_STATIC
#define  MAXON_DATATYPE_LOCAL (type, id)
#define  PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_INIT (x, i, a)
#define  PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_OFFSETS (x, i, a)
#define  PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_B (Type, line, count, ...)
#define  PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_A (type, line, count, ...)
#define  MAXON_DATATYPE_REGISTER_STRUCT (type, ...)

Typedefs

template<typename T >
using  Opaque = typename PrivateOpaque< T, void >::type

函数

template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (GenericArithmetic **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (void **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (std::nullptr_t **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
SFINAEHelper< Result< const DataType & >, typename T::NonvirtualInterfaceMarker >::type  PrivateGetDataType (T **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
SFINAEHelper< Result< const DataType & >, typename T::InterfaceMarker >::type  PrivateGetDataType (T **, OverloadRank1)
template<GET_DATATYPE_POLICY POLICY>
Result< const DataType & >  PrivateGetDataType (void *, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (DataType **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (DataType::Primary **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (TupleDataType **, OverloadRank0)
template<typename T >
void  PrivateDataTypeMarker (T *)
  MAXON_REGISTRY (DataType, DataTypes, "net.maxon.registry.datatypes")
void *  PrivateDataTypeMarker ( Char *)
  MAXON_DECLARATION ( maxon::DataType , DT_Char, "char")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Char **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( UChar *)
  MAXON_DECLARATION ( maxon::DataType , DT_UChar, "uchar")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( UChar **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Int16 *)
  MAXON_DECLARATION ( maxon::DataType , DT_Int16, "int16")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Int16 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( UInt16 *)
  MAXON_DECLARATION ( maxon::DataType , DT_UInt16, "uint16")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( UInt16 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Int32 *)
  MAXON_DECLARATION ( maxon::DataType , DT_Int32, "int32")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Int32 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( UInt32 *)
  MAXON_DECLARATION ( maxon::DataType , DT_UInt32, "uint32")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( UInt32 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Int64 *)
  MAXON_DECLARATION ( maxon::DataType , DT_Int64, "int64")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Int64 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( UInt64 *)
  MAXON_DECLARATION ( maxon::DataType , DT_UInt64, "uint64")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( UInt64 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Utf16Char *)
  MAXON_DECLARATION ( maxon::DataType , DT_Utf16Char, "utf16char")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Utf16Char **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Utf32Char *)
  MAXON_DECLARATION ( maxon::DataType , DT_Utf32Char, "utf32char")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Utf32Char **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Float32 *)
  MAXON_DECLARATION ( maxon::DataType , DT_Float32, "float32")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Float32 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Float64 *)
  MAXON_DECLARATION ( maxon::DataType , DT_Float64, "float64")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Float64 **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker ( Bool *)
  MAXON_DECLARATION ( maxon::DataType , DT_Bool, "bool")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType ( Bool **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (Byte *)
  MAXON_DECLARATION ( maxon::DataType , DT_Byte, "byte")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (Byte **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (AInt *)
  MAXON_DECLARATION ( maxon::DataType , DT_AInt, "int")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (AInt **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (AInt)
void *  PrivateDataTypeMarker (AUInt *)
  MAXON_DECLARATION ( maxon::DataType , DT_AUInt, "uint")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (AUInt **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (AUInt)
void *  PrivateDataTypeMarker (AFloat *)
  MAXON_DECLARATION ( maxon::DataType , DT_AFloat, "float")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (AFloat **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (AFloat)
void *  PrivateDataTypeMarker (HashValue *)
  MAXON_DECLARATION ( maxon::DataType , DT_HashValue, "net.maxon.datatype.hash")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (HashValue **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (Id *)
  MAXON_DECLARATION ( maxon::DataType , DT_Id, "net.maxon.datatype.id")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (Id **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (LiteralId *)
  MAXON_DECLARATION ( maxon::DataType , DT_LiteralId, "net.maxon.datatype.literalid")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (LiteralId **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (InternedId *)
  MAXON_DECLARATION ( maxon::DataType , DT_InternedId, "net.maxon.datatype.internedid")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (InternedId **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (Data *)
  MAXON_DECLARATION ( maxon::DataType , DT_Data, "net.maxon.datatype.data")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (Data **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (UnitType *)
  MAXON_DECLARATION ( maxon::DataType , DT_UnitType, "net.maxon.datatype.unittype")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (UnitType **, maxon::OverloadRank2 )
void *  PrivateDataTypeMarker (SourceLocation *)
  MAXON_DECLARATION ( maxon::DataType , DT_SourceLocation, "net.maxon.datatype.sourcelocation")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (SourceLocation **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (SourceLocation)
void *  PrivateDataTypeMarker (DelegateBase *)
  MAXON_DECLARATION ( maxon::DataType , DT_DelegateBase, "net.maxon.datatype.delegatebase")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (DelegateBase **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (DelegateBase)
template<Bool , typename T >
ResultOk< const DataType & >  PrivateGetEnumDataType (T *, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
std::enable_if< STD_IS_REPLACEMENT (enum, T), ResultOk< const DataType & > >::type  PrivateGetDataType (T **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (long **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (unsigned long **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (ParametricType **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (ComponentDescriptor **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
std::enable_if< GetDirectlyReferencedType< T >::value, Result< DataType > >::type  PrivateGetDataType (T **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
Result< DataType >  PrivateGetDataType (T ***, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
Result< DataType >  PrivateGetDataType (Block< T > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
Result< DataType >  PrivateGetDataType (StridedBlock< T > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
SFINAEHelper< Result< DataType >, typename T::VectorStrideType >::type  PrivateGetDataType (T **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
Result< DataType >  PrivateGetDataType (Opt< T > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
Result< DataType >  PrivateGetDataType (Result< T > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
Result< DataType >  PrivateGetDataType (OpaquePtr< T > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T >
std::enable_if<( Int (POLICY) & Int ( GET_DATATYPE_POLICY::ALLOW_BASEARRAY )) !=0, Result< DataType > >::type  PrivateGetDataType (BaseArray< T > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename... T>
Result< TupleDataType >  PrivateGetDataType (Tuple< T... > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T , typename = typename T::StructTupleType>
Result< TupleDataType >  PrivateGetDataType (T **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename R , typename... ARGS>
Result< DelegateDataType >  PrivateGetDataType (Delegate< R(ARGS...)> **, OverloadRank2)
template<typename T , GET_DATATYPE_POLICY POLICY>
const auto &  GetDataType ()
template<GET_DATATYPE_POLICY POLICY>
ResultOk< const DataType & >  PrivateGetDataType (Generic **, OverloadRank0)
void *  PrivateDataTypeMarker (ConstDataPtr *)
  MAXON_DECLARATION ( maxon::DataType , DT_ConstDataPtr, "net.maxon.datatype.constdataptr")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (ConstDataPtr **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (ConstDataPtr)
void *  PrivateDataTypeMarker (DataPtr *)
  MAXON_DECLARATION ( maxon::DataType , DT_DataPtr, "net.maxon.datatype.dataptr")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (DataPtr **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (DataPtr)
void *  PrivateDataTypeMarker (MoveDataPtr *)
  MAXON_DECLARATION ( maxon::DataType , DT_MoveDataPtr, "net.maxon.datatype.movedataptr")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (MoveDataPtr **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (MoveDataPtr)
void *  PrivateDataTypeMarker (ForwardingDataPtr *)
  MAXON_DECLARATION ( maxon::DataType , DT_ForwardingDataPtr, "net.maxon.datatype.forwardingdataptr")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (ForwardingDataPtr **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (ForwardingDataPtr)
void *  PrivateDataTypeMarker (Member *)
  MAXON_DECLARATION ( maxon::DataType , DT_Member, "net.maxon.datatype.member")
template<maxon::GET_DATATYPE_POLICY >
maxon::ResultOk < const maxon::DataType & >  PrivateGetDataType (Member **, maxon::OverloadRank2 )
  MAXON_ASSERT_LEGAL_LAYOUT (Member)
template<GET_DATATYPE_POLICY POLICY, typename... T>
Result< TupleDataType >  PrivateGetDataType (NamedTuple< T... > **, OverloadRank0)
template<GET_DATATYPE_POLICY POLICY, typename T , T C>
Result< DataType >  PrivateGetDataType (std::integral_constant< T, C > **, OverloadRank0)
  MAXON_DATATYPE_EARLY_ENUM (WRITEMETA, "net.maxon.datatype.enum.writemeta")
  MAXON_DATATYPE_EARLY_ENUM (TARGETAUDIENCE, "net.maxon.datatype.enum.targetaudience")
  MAXON_DATATYPE_EARLY_ENUM ( OUTPUT , "net.maxon.datatype.enum.output")
  MAXON_DATATYPE_EARLY_ENUM (VALUEKIND, "net.maxon.datatype.enum.valuekind")
  MAXON_DATATYPE_EARLY_ENUM (COMPARERESULT, "net.maxon.datatype.enum.compareresult")
  MAXON_DATATYPE_EARLY_ENUM (EQUALITY, "net.maxon.datatype.enum.equality")
  MAXON_DATATYPE_EARLY_ENUM (COLLECTION_RESIZE_FLAGS, "net.maxon.datatype.enum.collection_resize_flags")

变量

template<typename T , GET_DATATYPE_POLICY POLICY, Bool ELEMENTARY>
const DataTypeCache DataTypeCacheInstance< T, POLICY, ELEMENTARY >::_instance &  CheckedGetDataType