-
首页
-
C4D R23.110 C++ SDK
详细描述
Classes
|
struct
|
IntType< BYTES >
|
struct
|
IntType< 1 >
|
struct
|
IntType< 2 >
|
struct
|
IntType< 4 >
|
struct
|
IntType< 8 >
|
struct
|
UIntType< BYTES >
|
struct
|
UIntType< 1 >
|
struct
|
UIntType< 2 >
|
struct
|
UIntType< 4 >
|
struct
|
UIntType< 8 >
|
struct
|
StandardType< T, INTEGRAL >
|
struct
|
StandardType< T, true >
|
class
|
Block< T, STRIDED, MOVE >
|
class
|
Result< RESULT_TYPE >
|
class
|
ResultOk< T >
|
class
|
EmptyClass
|
class
|
EmptyVirtualClass
|
class
|
SFINAEHelper< T, CHECK >
|
struct
|
is_constructible< maxon::Generic, const maxon::Generic & >
|
class
|
ThreadReferencedError
|
struct
|
TestForCopyFromMember< T >
|
class
|
ObjectConstructor< T, hasCopyFrom >
|
class
|
ObjectConstructor< T, false >
|
struct
|
AlignedStorage< SIZE, ALIGN >
|
class
|
BoolLValue
|
class
|
DataDictionaryInterface
|
class
|
DataDictionaryIteratorInterface
|
class
|
DataDictionaryIterator
|
class
|
DataDictionaryObjectInterface
|
class
|
DataDictionaryReferenceObjectInterface
|
class
|
UnregisteredDataTypeErrorInterface
|
struct
|
IsSimdElementType< T, CHECK >
|
struct
|
IsSimdElementType< T, typename SFINAEHelper< void, typename T::VectorStrideType >::type >
|
struct
|
SimdInfo
|
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
|
NamedTupleMembers
|
class
|
NamedTuple< T >
|
class
|
TupleValue
|
class
|
FunctionDataType
|
struct
|
DataMemBlock
|
class
|
DataTypePtr
|
class
|
DataTypeImpl::Primary
|
class
|
DataTypeImpl::Instantiated
|
class
|
DataTypeImpl
|
class
|
DataType::Primary
|
class
|
DataType
|
class
|
数据
|
struct
|
IsZeroInitialized< Data >
|
class
|
ConstDataPtr::Wrapper< T, CHECK >
|
class
|
ConstDataPtr
|
class
|
DataPtr
|
class
|
MoveDataPtr
|
struct
|
ForwardingDataPtr
|
class
|
AbstractDataTypeFunctions
|
class
|
DataTypeReferenceFunctions< T, SUPER >
|
class
|
DefaultDataTypeFunctionsBase< T >
|
class
|
DefaultDataTypeFunctions< T, TYPE >
|
class
|
DefaultDataTypeFunctions< T, DATATYPEMODE::SMALLISPOD >
|
class
|
DefaultDataTypeFunctions< T, DATATYPEMODE::SMALL >
|
class
|
DefaultDataTypeFunctions< T, DATATYPEMODE::BIG >
|
struct
|
DefaultDataTypeFunctionsCapabilityFlags< T >
|
class
|
DataTypeFunctions< T >
|
class
|
InterfaceDataTypeFunctions< T >
|
class
|
InternedId
|
struct
|
IsTriviallyEquatable< InternedId >
|
struct
|
IsZeroInitialized< InternedId >
|
struct
|
Member
|
struct
|
TypeArguments
|
class
|
DataTypeLib
|
class
|
TupleDataType
|
class
|
DelegateDataType
|
class
|
EnumDataType
|
class
|
ContainerDataType< T >
|
class
|
RefCountedCString
|
class
|
ResultMemT< T >
|
class
|
LiteralId
|
class
|
Id
|
class
|
CompareTemplate< ALLOW_UNDEFINED, EQ, OPERATOR_RANK >
|
class
|
DefaultCompare
|
class
|
EqualityCompare
|
class
|
CStringCompare
|
class
|
RefCompare< COW, IS_INTERFACE >
|
class
|
RefCompare< true, false >
|
class
|
RefCompare< true, true >
|
class
|
BigIntegerInterface
|
class
|
BigInteger
|
struct
|
GradientKnot
|
class
|
GradientInterface
|
class
|
GradientRenderDataInterface
|
struct
|
SplineMapperKnot
|
class
|
SplineMapperInterface
|
Macros
|
#define
|
MAXON_ATTRIBUTE_DLL_PUBLIC
|
#define
|
MAXON_ATTRIBUTE_NO_INLINE
|
#define
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
#define
|
MAXON_ATTRIBUTE_USED
|
#define
|
PRIVATE_MAXON_DEPRECATED_ENUMVALUE
(name, value, reason)
|
#define
|
MAXON_DEPRECATED_ENUMVALUE
(name, value, reason)
|
#define
|
MAXON_IMPLICIT
|
#define
|
MAXON_ATTRIBUTE_SYSCHAR_IS_CHAR
|
#define
|
MAXON_CONSTEXPR_EVAL
(T, X)
|
#define
|
PRIVATE_MAXON_AS_UTF8
(x)
|
#define
|
CONSTSTRING
(x)
|
#define
|
PRIVATE_MAXON_TRANSLATIONUNIT_FLAGS
|
#define
|
PRIVATE_MAXON_TRANSLATIONUNIT_FLAGS_2
|
#define
|
PRIVATE_MAXON_DETECT_MEMBER_HELPER1
(x, i, a)
|
#define
|
PRIVATE_MAXON_DETECT_MEMBER_HELPER2
(x, i, a)
|
#define
|
PRIVATE_MAXON_DETECT_MEMBER_HELPER3
(x, i, a)
|
#define
|
MAXON_DETECT_MEMBER_HELPER
(NAME, ...)
|
#define
|
MAXON_SCOPE
|
#define
|
MAXON_WARN_MUTE_FUNCTION_LENGTH
|
#define
|
MAXON_WARN_MUTE_NAMING
|
#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, ...)
|
#define
|
SPLINEMAPPER_KNOT_GET_ID
(flags)
|
#define
|
SPLINEMAPPER_KNOT_SET_ID
(flags, flag_id)
|
Enumerations
|
enum
|
ENUM_DONT_INITIALIZE
{
VALUE
}
|
enum
|
IN_PLACE_TYPE
{
VALUE
}
|
enum
|
CONVERSION_FLAGS
{
NONE
,
NARROWING
,
WIDENING_LOSSY
,
WIDENING_LOSSLESS
,
REDUCING
,
EXPANDING
,
STRUCT_CAST
,
ITERATION
,
INCONVERTIBLE
,
WIDENING_MASK
,
NARROWING_REDUCING_MASK
}
|
enum
|
GET_DATATYPE_POLICY
{
NONE
,
GENERIC_FOR_UNKNOWN
,
ERROR_FOR_UNKNOWN
,
NO_DECAY
,
ALLOW_BASEARRAY
,
RESULT_FOR_UNKNOWN_MASK
}
|
enum
|
DATATYPEMODE
{
SMALLISPOD
,
SMALL
,
BIG
}
|
enum
|
INNERMOST_MEMBER
: Int32
|
enum
|
COMPARERESULT
{
LESS
,
EQUAL
,
GREATER
,
INCOMPARABLE
}
|
enum
|
EQUALITY
{
SHALLOW
,
DEEP
}
|
函数
|
|
__attribute__
((always_inline)) typename std
|
const
String
&
|
StringInterface_GetAndCacheConstString
(const wchar_t *str,
Int
len)
|
const
String
&
|
StringInterface_GetAndCacheConstString
(const
Char
*str,
Int
len,
Int
isUtf8)
|
constexpr
Bool
|
PrivateIsUtf8
(const char *str,
Int
len)
|
const
String
&
|
operator""_s
(const char *str, std::size_t cnt)
|
const
String
&
|
operator""_s
(const wchar_t *str, std::size_t cnt)
|
template<typename T >
|
String
|
GlobalToString
(const T &object, const
FormatStatement
*formatStatement,
Bool
checkDataType=true)
|
virtual
|
~EmptyVirtualClass
()
|
template<typename T , typename E >
|
E &&
|
MakeDependentExpr
(E &&value)
|
template<typename T >
|
T *
|
addressof
(T &x)
|
enum
maxon::ENUM_DONT_INITIALIZE
|
MAXON_ENUM_LIST
(
ENUM_DONT_INITIALIZE
)
|
enum
maxon::IN_PLACE_TYPE
|
MAXON_ENUM_LIST
(
IN_PLACE_TYPE
)
|
Bool
|
MaxonStart
(int argc,
SysChar
**argv,
InitMTable
initSystemTable, Binary *optionalDependency=nullptr)
|
Bool
|
MaxonEnd
()
|
|
Helper
(
OverloadRank2
, T &obj
MAXON_MAKE_LIST
(
PRIVATE_MAXON_DETECT_MEMBER_HELPER1
,,,,)) -> decltype(obj. GetMemorySize(MAXON_MAKE_COMMA_LIST(
PRIVATE_MAXON_DETECT_MEMBER_HELPER2
,,,)))
|
template<typename T >
|
MAXON_ATTRIBUTE_FORCE_INLINE
auto
|
MAXON_CONCAT
(GetMemorySize,
Helper
)(
OverloadRank1
|
MAXON_ATTRIBUTE_FORCE_INLINE
auto T &obj
|
MAXON_MAKE_LIST
(
PRIVATE_MAXON_DETECT_MEMBER_HELPER1
,,,,)) -> decltype(GetMemorySize(obj MAXON_MAKE_LIST(
PRIVATE_MAXON_DETECT_MEMBER_HELPER3
,,,,)))
|
template<typename T >
|
MAXON_ATTRIBUTE_FORCE_INLINE
auto
|
MAXON_CONCAT
(GetMemorySize,
Helper
)(T &obj
MAXON_MAKE_LIST
(
PRIVATE_MAXON_DETECT_MEMBER_HELPER1
|
template<typename X >
|
MAXON_ATTRIBUTE_FORCE_INLINE
autodecltype(
MAXON_CONCAT
(GetMemorySize,
Helper
)(((
maxon::OverloadRankMax
) nullptr), obj
MAXON_MAKE_LIST
(
PRIVATE_MAXON_DETECT_MEMBER_HELPER3
,,,,))) T &
|
__attribute__
((always_inline)) void UseVariable(X &&var)
|
template<typename T >
|
std::false_type
|
TestForCopyFromFunction
(
OverloadRank0
)
|
template<typename T >
|
|
__attribute__
((always_inline))
Result
< void > NewCopy(T &dst
|
template<typename T , typename U >
|
|
__attribute__
((always_inline))
Result
< void > AssignCopyConvert(T &dst
|
template<typename T >
|
void
|
Destruct
(T *object)
|
template<typename T >
|
void
|
重置
(T &object)
|
Result
< void >
|
MergeDataDictionaries
(DataDictionary &base, const DataDictionary &other,
Bool
mergeSubContainers)
|
Result
< void >
|
MergeDataDictionariesPreferBase
(DataDictionary &base, const DataDictionary &other,
Bool
mergeSubContainers)
|
Result
<
数据
>
|
GetDataDescriptionValueI
(const
Id
&databaseScope, const
InternedId
&attributeData, const
ConstDataPtr
&keyPtr)
|
template<typename ATTRIBUTETYPE , typename KEY >
|
static
Result
< typename IsFidClass< ATTRIBUTETYPE >::type >
|
GetDataDescriptionValue
(ATTRIBUTETYPE &&attribute, KEY &&key)
|
template<typename TT , typename ATTRIBUTETYPE >
|
static
Result
< TT >
|
GetDataDescriptionValue2
(ATTRIBUTETYPE &&attribute, const
ConstDataPtr
&key)
|
template<typename ATTRIBUTETYPE , typename KEY >
|
static
Result
< typename IsFidClass< KEY >::type >
|
GetDataDescriptionValueFromKey
(ATTRIBUTETYPE &&attribute, KEY &&key)
|
template<typename TT , typename KEY >
|
TT
|
GetDefaultFromFidIfAvailable
(KEY &&key,
OverloadRank0
)
|
template<typename TT , typename KEY >
|
SFINAEHelper
< TT, decltype(std::remove_reference< KEY >::
type::DEFAULTVALUE
)>::type
|
GetDefaultFromFidIfAvailable
(KEY &&key,
OverloadRank2
)
|
ConstDataPtr
|
GetDefaultValueKey
()
|
template<typename SRCCLASS , typename PROPSRCTYPE , typename DSTCLASS , typename PROPDSTTYPE >
|
Result
< void >
|
TransferPropertyIfAvailable
(const SRCCLASS &
src
, PROPSRCTYPE &&srcType, DSTCLASS &dst, PROPDSTTYPE &&dstType)
|
|
MAXON_DECLARATION
(
Class
< DataDictionaryObjectRef >, DataDictionaryObjectEmptyClass, "net.maxon.class.datadictionaryobjectempty")
|
|
MAXON_DECLARATION
(
Class
< DataDictionaryObjectRef >, DataDictionaryObjectClass, "net.maxon.class.datadictionaryobject")
|
|
MAXON_DECLARATION
(
Class
< DataDictionaryObjectRef >, DataDictionaryObjectLockedClass, "net.maxon.class.datadictionaryobjectlocked")
|
|
MAXON_DECLARATION
(
Class
< DataDictionaryObjectRef >, DataDictionaryObjectSyncedClass, "net.maxon.class.datadictionaryobjectsynced")
|
|
MAXON_DECLARATION
(
Class
< DataDictionaryReferenceObjectRef >, DataDictionaryObjectReferenceClass, "net.maxon.class.datadictionaryobjectreference")
|
Result
< DataDictionaryObjectRef >
|
CreateDataDictionaryReferenceObject
(DataDictionary *reference)
|
Result
< DataDictionaryObjectRef >
|
CreateDataDictionaryReferenceObject
(const DataDictionary *reference)
|
Result
< DataDictionary >
|
GetDataDictionaryFromDataDictionaryObjectRef
(const DataDictionaryObjectRef &ref)
|
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
(
数据
*)
|
|
MAXON_DECLARATION
(
maxon::DataType
, DT_Data, "net.maxon.datatype.data")
|
template<maxon::GET_DATATYPE_POLICY >
|
maxon::ResultOk
< const
maxon::DataType
& >
|
PrivateGetDataType
(
数据
**,
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>
|
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 >
|
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 >
|
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
)
|
enum
maxon::CONVERSION_FLAGS
|
MAXON_ENUM_FLAGS
(
CONVERSION_FLAGS
)
|
enum
maxon::GET_DATATYPE_POLICY
|
MAXON_ENUM_FLAGS
(
GET_DATATYPE_POLICY
)
|
|
MAXON_DETECT_MEMBER_HELPER
(
DescribeIO
, const
DataSerializeInterface
&)
|
template<typename T >
|
Result
< void >
|
DescribeIO
(const T &s, const
DataSerializeInterface
&dsi)
|
enum
maxon::DATATYPEMODE
|
MAXON_ENUM_LIST
(
DATATYPEMODE
)
|
Result
< void * >
|
DecltypeNewInstanceHelper
(const void *)
|
template<typename T >
|
static
Result
< void * >
|
PrivateNewInterfaceInstance
(
OverloadRank0
)
|
template<typename T >
|
static decltype(
DecltypeNewInstanceHelper
(T::Alloc(
maxon::SourceLocation
())))
MAXON_WARN_UNUSED
|
PrivateNewInterfaceInstance
(
OverloadRank1
)
|
enum
maxon::INNERMOST_MEMBER
Int32
|
MAXON_ENUM_ORDERED_LIST
(
INNERMOST_MEMBER
)
|
enum
maxon::COMPARERESULT
|
MAXON_ENUM_ORDERED_LIST
(
COMPARERESULT
, "net.maxon.datatype.enum.compareresult", EARLY)
|
enum
maxon::EQUALITY
|
MAXON_ENUM_LIST
(
EQUALITY
, "net.maxon.datatype.enum.equality", EARLY)
|
template<Bool ALLOW_UNDEFINED = false>
|
Bool
|
LexicographicalGreaterThan
()
|
template<Bool ALLOW_UNDEFINED = false, typename T1 , typename... TN>
|
Bool
|
LexicographicalGreaterThan
(const T1 &a1, const T1 &b1, const TN &... ab)
|
template<Bool ALLOW_UNDEFINED = false>
|
Bool
|
LexicographicalLessThan
()
|
template<Bool ALLOW_UNDEFINED = false, typename T1 , typename... TN>
|
Bool
|
LexicographicalLessThan
(const T1 &a1, const T1 &b1, const TN &... ab)
|
template<Bool ALLOW_UNDEFINED = false>
|
COMPARERESULT
|
LexicographicalCompare
()
|
template<Bool ALLOW_UNDEFINED = false, typename T1 , typename... TN>
|
COMPARERESULT
|
LexicographicalCompare
(const T1 &a1, const T1 &b1, const TN &... ab)
|
COMPARERESULT
|
比较
(const
GradientKnot
&a, const
GradientKnot
&b)
|
|
MAXON_DATATYPE
(
SplineMapperKnot
, "net.maxon.datatype.splinemapperknot")
|
|
DataDictionaryIterator
(const
DataDictionaryInterface
*dict,
Bool
end
)
|
template<typename T , typename KEY >
|
std::conditional< std::is_void< T >::value, typename IsFidClass< KEY >::type, T >::type
|
GetOrDefault
(KEY &&key) const
|
|
DataDictionaryIterator
(const
DataDictionaryObjectInterface
*dict,
Bool
end
)
|
template<typename T , typename KEY >
|
std::conditional< std::is_void< T >::value, typename IsFidClass< KEY >::type, T >::type
|
GetOrDefault
(KEY &&key) const
|
template<typename T >
|
void
|
AssertType
() const
|
template<typename T >
|
Bool
|
Is
() const
|
template<typename DEST , typename SRC >
|
Result
< void >
|
AddConversion
(
CONVERSION_FLAGS
kind,
Result
< void >(*conversion)(DEST &, const SRC &))
|
template<typename T >
|
Bool
|
IsCastableFrom
() const
|
template<typename T >
|
Bool
|
IsCastableTo
() const
|
template<typename T >
|
static
Result
<
数据
>
|
创建
()
|
Result
<
数据
>
|
GetCopy
() const
|
template<typename T >
|
void
|
InitSet
(T &&data)
|
template<>
|
void
|
InitSet
(
数据
&&data)
|
template<typename DEST , typename SRC >
|
Result
< void >
|
SetImpl
(SRC &&data,
OverloadRank0
)
|
template<typename DEST >
|
Result
< void >
|
SetImpl
(
数据
&&data,
OverloadRank1
)
|
template<typename DEST >
|
Result
< void >
|
SetImpl
(const
数据
&data,
OverloadRank1
)
|
template<typename DEST >
|
Result
< void >
|
SetImpl
(
数据
&data,
OverloadRank1
)
|
template<typename T >
|
T *
|
GetPtr
()
|
template<>
|
数据
*
|
GetPtr
()
|
template<typename T >
|
void
|
Set
(const T &value)
|
static
String
|
ToString
(const T *object, const
FormatStatement
*formatStatement,
Bool
checkDataType)
|
MAXON_IMPLICIT
|
DataTypePtr
(const
DataType
&type)
|
template<>
|
Result
< void >
|
Get
() const
|
template<>
|
Result
< void >
|
Set
(const
数据
&value)
|
template<>
|
Result
< void >
|
Set
(
数据
&value)
|
template<>
|
Result
< void >
|
Set
(
数据
&&value)
|
template<>
|
Result
< void >
|
Get
() const
|
template<>
|
Result
<
数据
>
|
Get
()
|
Macro Definition Documentation
◆
MAXON_ATTRIBUTE_DLL_PUBLIC
#define MAXON_ATTRIBUTE_DLL_PUBLIC
|
Use MAXON_ATTRIBUTE_DLL_PUBLIC in the declaration of a variable or function to export symbols (project settings make them private by default), e.g. MAXON_ATTRIBUTE_DLL_PUBLIC int variable; extern "C" MAXON_ATTRIBUTE_DLL_PUBLIC void function();
◆
MAXON_ATTRIBUTE_NO_INLINE
#define MAXON_ATTRIBUTE_NO_INLINE
|
Use MAXON_ATTRIBUTE_NO_INLINE to prevent the compiler from inlining a method, e.g. static MAXON_ATTRIBUTE_NO_INLINE void FreeContainer(Container& c);
◆
MAXON_ATTRIBUTE_FORCE_INLINE
#define MAXON_ATTRIBUTE_FORCE_INLINE
|
Use MAXON_ATTRIBUTE_FORCE_INLINE to force the compiler to explicitly inline a method, e.g. MAXON_ATTRIBUTE_FORCE_INLINE Float32
Clamp01(Float32 a)
◆
MAXON_ATTRIBUTE_USED
#define MAXON_ATTRIBUTE_USED
|
use MAXON_ATTRIBUTE_USED to tell the linker it must not dead-strip a function or static variable (even if it determines that the rest of the program does not refer to the object)
◆
PRIVATE_MAXON_DEPRECATED_ENUMVALUE
#define PRIVATE_MAXON_DEPRECATED_ENUMVALUE
|
(
|
|
name,
|
|
|
|
value,
|
|
|
|
reason
|
|
)
|
|
|
◆
MAXON_DEPRECATED_ENUMVALUE
#define MAXON_DEPRECATED_ENUMVALUE
|
(
|
|
name,
|
|
|
|
value,
|
|
|
|
reason
|
|
)
|
|
|
Use MAXON_DEPRECATED_ENUMVALUE to mark an enum value being deprecated. This macro is processed by MSVC, Clang, GCC and Doxygen.
-
注意
-
Don't use a comma after the macro!
范例:
enum class
COLORS
{
RED
,
GREEN
,
BLUE
,
MAXON_DEPRECATED_ENUMVALUE
(BROWN, 100,
"Color for brown objects. Use red from now on"
)
MAXON_DEPRECATED_ENUMVALUE
(YELLOW, 200, "
颜色
for yellow objects. Use blue from now on")
};
◆
MAXON_IMPLICIT
Use MAXON_IMPLICIT to mark a constructor which may be used for implicit conversions. Example:
class
MyClass
{
public
:
MAXON_IMPLICIT
MyClass(
Int
x);
explicit
MyClass(
const
Char
* x);
};
void
Func(
const
MyClass& x);
Func(42)
// OK: the constructor is used for an implicit conversion of 42 to a temporary MyClass object
Func("Hello World");
// Error: the constructor is marked explicit
Note that you have to mark a potential conversion constructor (i.e., one that takes a single argument) with either MAXON_IMPLICIT or
explicit
, otherwise the source processor will complain.
◆
MAXON_ATTRIBUTE_SYSCHAR_IS_CHAR
#define MAXON_ATTRIBUTE_SYSCHAR_IS_CHAR
|
Internal
.
◆
MAXON_CONSTEXPR_EVAL
#define MAXON_CONSTEXPR_EVAL
|
(
|
|
T,
|
|
|
|
X
|
|
)
|
|
|
Forces a compile-time evaluation of the constexpr expression X of integral type T. Sometimes this is needed to give the compiler a clue that the expression can be evaluated at run-time, which then can enable further optimization.
-
参数
-
T
|
Type of the expression (has to be an integral type).
|
X
|
The expression.
|
-
返回
-
Compile-time constant value of the expression.
◆
PRIVATE_MAXON_AS_UTF8
#define PRIVATE_MAXON_AS_UTF8
|
(
|
|
x
|
)
|
|
◆
CONSTSTRING
#define CONSTSTRING
|
(
|
|
x
|
)
|
|
◆
PRIVATE_MAXON_TRANSLATIONUNIT_FLAGS
#define PRIVATE_MAXON_TRANSLATIONUNIT_FLAGS
|
◆
PRIVATE_MAXON_TRANSLATIONUNIT_FLAGS_2
#define PRIVATE_MAXON_TRANSLATIONUNIT_FLAGS_2
|
◆
PRIVATE_MAXON_DETECT_MEMBER_HELPER1
#define PRIVATE_MAXON_DETECT_MEMBER_HELPER1
|
(
|
|
x,
|
|
|
|
i,
|
|
|
|
a
|
|
)
|
|
|
◆
PRIVATE_MAXON_DETECT_MEMBER_HELPER2
#define PRIVATE_MAXON_DETECT_MEMBER_HELPER2
|
(
|
|
x,
|
|
|
|
i,
|
|
|
|
a
|
|
)
|
|
|
◆
PRIVATE_MAXON_DETECT_MEMBER_HELPER3
#define PRIVATE_MAXON_DETECT_MEMBER_HELPER3
|
(
|
|
x,
|
|
|
|
i,
|
|
|
|
a
|
|
)
|
|
|
◆
MAXON_DETECT_MEMBER_HELPER
#define MAXON_DETECT_MEMBER_HELPER
|
(
|
|
NAME,
|
|
|
|
...
|
|
)
|
|
|
Example usage of this macro is
MAXON_DETECT_MEMBER_HELPER(WriteTo, const char*)
; this allows automatic detection of the WriteTo as a member or static function: struct X { Bool WriteTo(const char* str) const { } }; or struct Y {}; static Bool WriteTo(const Y& y, const char* str) { }
You can add a fallback by using overload rank 0, or further specializations with ranks starting at 3, e.g.,
template
<
typename
T>
typename
SFINAEHelper<
Bool
, ... some T-based check...>::type WriteToHelper(
OverloadRank3
, T& obj,
const
char
* str);
◆
MAXON_SCOPE
Marks a block of code that is scoped for a certain reason.
MAXON_SCOPE
// do whatever you want
{
ScopedLock lock(lock);
... more code ...
}
◆
MAXON_WARN_MUTE_FUNCTION_LENGTH
#define MAXON_WARN_MUTE_FUNCTION_LENGTH
|
Marks a function so that the source processor doesn't issue a warning if the function length exceeds the line count limit. This should really only be used where it doesn't make sense to split up the function into smaller pieces, such as the initialization of tables.
MAXON_WARN_MUTE_FUNCTION_LENGTH
Result<void> InitTranslationTable()
{
... really
long
function
...
}
◆
MAXON_WARN_MUTE_NAMING
#define MAXON_WARN_MUTE_NAMING
|
Marks a declaration so that the source processor doesn't issue a warning if the declaration violates the naming conventions of the style guide.
MAXON_WARN_MUTE_NAMING
TIFFErrorHandler _TIFFwarningHandler =
nullptr
;
◆
PRIVATE_MAXON_DATATYPE_A
#define PRIVATE_MAXON_DATATYPE_A
|
(
|
|
type,
|
|
|
|
id
|
|
)
|
|
|
◆
MAXON_DATATYPE_SCALAR
#define MAXON_DATATYPE_SCALAR
|
(
|
|
type,
|
|
|
|
id
|
|
)
|
|
|
◆
PRIVATE_MAXON_DATATYPE
#define PRIVATE_MAXON_DATATYPE
|
(
|
|
type,
|
|
|
|
id
|
|
)
|
|
|
◆
MAXON_DATATYPE
#define MAXON_DATATYPE
|
(
|
|
type,
|
|
|
|
id
|
|
)
|
|
|
MAXON_DATATYPE declares a primary DataType for the given
type
. Use this in a header file to be able to use values of
type
for the DataType system. There has to be a matching DataType definition via MAXON_DATATYPE_REGISTER in a cpp file.
MAXON_DATATYPE
(TimeValue,
"net.maxon.datatype.timevalue"
);
You don't have to declare data types for interfaces, this is done automatically. Also you don't have to declare data types for template instantiations if there is a ParametricType for the class template. For example there is a ParametricType for StrongRef<T>, so for any T for which a DataType is declared the DataType for StrongRef<T> needn't be declared because the ParametricType automatically derives it from the DataType for T.
-
参数
-
[in]
|
type
|
Type for which a DataType shall be implemented.
|
[in]
|
id
|
Unique identifier of the data type.
|
◆
PRIVATE_MAXON_DATATYPE_REGISTER
#define PRIVATE_MAXON_DATATYPE_REGISTER
|
(
|
|
T,
|
|
|
|
ret,
|
|
|
|
flags
|
|
)
|
|
|
◆
PRIVATE_MAXON_DATATYPE_REGISTER_ENUM
#define PRIVATE_MAXON_DATATYPE_REGISTER_ENUM
|
(
|
|
enumtype,
|
|
|
|
cppname,
|
|
|
|
id,
|
|
|
|
size,
|
|
|
|
flags,
|
|
|
|
names,
|
|
|
|
...
|
|
)
|
|
|
◆
MAXON_DATATYPE_REGISTER
#define MAXON_DATATYPE_REGISTER
|
(
|
|
type
|
)
|
|
MAXON_DATATYPE_REGISTER defines the implementation of a
maxon::DataType
for the given
type
. This macro has to be used in a cpp file, and there has to be a corresponding MAXON_DATATYPE in a header file. For each type, there must be exactly one MAXON_DATATYPE_REGISTER for the whole application. The usage is as easy as
MAXON_DATATYPE_REGISTER
(TimeValue);
However, this assumes that the appropriate functions for comparison, string conversion etc. are available in the current scope.
If the type is a struct type consisting of public member variables, you can use MAXON_DATATYPE_REGISTER_STRUCT to make the members of your type accessible to the DataType system.
-
参数
-
[in]
|
type
|
Type for which a DataType shall be implemented.
|
◆
PRIVATE_MAXON_DATATYPE_LOCAL_STATIC
#define PRIVATE_MAXON_DATATYPE_LOCAL_STATIC
|
◆
MAXON_DATATYPE_LOCAL
#define MAXON_DATATYPE_LOCAL
|
(
|
|
type,
|
|
|
|
id
|
|
)
|
|
|
MAXON_DATATYPE_LOCAL can be used for DataType declarations which need not be publicly visible in a header file. It comprises the declaration (which would normally done by MAXON_DATATYPE in a header file) and its implementation (normally done by MAXON_DATATYPE_REGISTER). MAXON_DATATYPE_LOCAL has to be placed in a cpp file. The functions for comparison, string conversion etc. are taken from the current scope.
-
参数
-
[in]
|
type
|
Type for which a local DataType shall be declared and implemented.
|
[in]
|
id
|
The unique identifier of the local data type.
|
◆
PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_INIT
#define PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_INIT
|
(
|
|
x,
|
|
|
|
i,
|
|
|
|
a
|
|
)
|
|
|
◆
PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_OFFSETS
#define PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_OFFSETS
|
(
|
|
x,
|
|
|
|
i,
|
|
|
|
a
|
|
)
|
|
|
◆
PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_B
#define PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_B
|
(
|
|
Type,
|
|
|
|
line,
|
|
|
|
count,
|
|
|
|
...
|
|
)
|
|
|
◆
PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_A
#define PRIVATE_MAXON_DATATYPE_REGISTER_STRUCT_A
|
(
|
|
type,
|
|
|
|
line,
|
|
|
|
count,
|
|
|
|
...
|
|
)
|
|
|
◆
MAXON_DATATYPE_REGISTER_STRUCT
#define MAXON_DATATYPE_REGISTER_STRUCT
|
(
|
|
type,
|
|
|
|
...
|
|
)
|
|
|
MAXON_DATATYPE_REGISTER_STRUCT defines the implementation of a DataType for the given #type, and it also sets up an underlying tuple type which is composed of the members given by ... . You can use this instead of MAXON_DATATYPE_REGISTER for a struct type consisting of public member variables, then the members of your type are accessible to the DataType system. Also there's no need to implement the DescribeIO function because the one from the underlying type is used.
This macro has to be used in a cpp file, and there has to be a corresponding MAXON_DATATYPE in a header file.
// header file
struct
Member
{
const
DataTypeImpl* type;
Id name;
};
MAXON_DATATYPE
(Member,
"net.maxon.datatype.member"
);
// cpp file
MAXON_DATATYPE_REGISTER_STRUCT
(Member, type, name);
-
参数
-
[in]
|
type
|
Type for which a DataType shall be implemented.
|
[in]
|
...
|
List of the names of the member variables of #type.
|
◆
SPLINEMAPPER_KNOT_GET_ID
#define SPLINEMAPPER_KNOT_GET_ID
|
(
|
|
flags
|
)
|
|
Gets the ID of a SplineMapperKnot. Usage:
Int32
id
=
SPLINEMAPPER_KNOT_GET_ID
(point.flags);
◆
SPLINEMAPPER_KNOT_SET_ID
#define SPLINEMAPPER_KNOT_SET_ID
|
(
|
|
flags,
|
|
|
|
flag_id
|
|
)
|
|
|
Sets the ID of a SplineMapperKnot. Usage:
SPLINEMAPPER_KNOT_SET_ID
(point.flags,
id
);
Typedef Documentation
◆
Int16
16 bit signed integer datatype.
◆
UInt16
16 bit unsigned integer datatype.
◆
Int32
32 bit signed integer datatype.
◆
UInt32
32 bit unsigned integer datatype.
◆
Int64
64 bit signed integer datatype.
◆
UInt64
64 bit unsigned integer datatype.
◆
Bool
boolean type, possible values are only false/true, 8 bit
◆
Float32
32 bit floating point value (float)
◆
Float64
64 bit floating point value (double)
◆
Char
signed 8 bit character
◆
UChar
using
UChar
= unsigned char
|
unsigned 8 bit character
◆
Int
signed 32/64 bit int, size depends on the platform
◆
UInt
unsigned 32/64 bit int, size depends on the platform
◆
Float
current floating point model. right now it's adjusted to Float64==64 bit but maybe it's redefined to Float32 anytime
◆
Utf32Char
32 bit unicode (UTF-32) character. Utf32Char is the datatype for a single 32 bit unicode character.
◆
Utf16Char
16 bit unicode character. Note that complex unicodes can be composed of two individual 16 bit characters.
◆
SysChar
System-specific character. This is the character that will be fed to all system functions. Under windows this is a 16-bit wide value, all other platforms define it as 8-bit (and encode strings as UTF-8).
◆
type
[1/11]
◆
type
[2/11]
◆
type
[3/11]
◆
type
[4/11]
◆
type
[5/11]
◆
type
[6/11]
◆
type
[7/11]
◆
type
[8/11]
◆
type
[9/11]
◆
DT
using
DT
= typename std::decay<T>::
type
|
◆
type
[10/11]
◆
HashInt
◆
type
[11/11]
The result type will always be T.
◆
InitMTable
initSystemTable/InitMTable is not allowed to call thread specific methods as the thread model is not up at the point of calling
◆
Opaque
◆
ResultMem
Use this class as result type of functions that can fail in out-of-memory situations. This allows to use the result in combination with iferr or
Result<void>
return values. ResultMem accepts Bool, ResultPtr,
ResultRef
, pointers and strong/unique references in its constructors.
ResultMem is just a type alias for ResultMemT<Bool>.
Enumeration Type Documentation
◆
ENUM_DONT_INITIALIZE
Marker type for constructors which don't initialize the class members at all. E.g., vectors usally initialize all components with (0, 0, 0). Vector v(DONT_INITIALIZE); will create an uninitialized vector.
◆
IN_PLACE_TYPE
Marker type to resolve ambiguity for perfect-forwarded in-place constructors.
◆
CONVERSION_FLAGS
This enum defines flags for a
DataType
conversion.
-
另请参阅
-
AddConversion
-
转换
Enumerator
|
NONE
|
When no other flags are set, the conversion is a one-to-one correspondence (such as from Float to
TimeValue
and back).
|
NARROWING
|
The conversion contains a narrowing conversion. The conversion may not always be possible (such as converting a negative Int to a UInt), then it returns an error.
|
WIDENING_LOSSY
|
The conversion contains a widening conversion which is always possible, but it might result in loss of precision (a Float64 can't represent all bits of an Int64).
|
WIDENING_LOSSLESS
|
The conversion contains a lossless widening conversion.
|
REDUCING
|
The conversion contains a reducing conversion such as from a vector to a scalar (or a higher-dimensional vector to a lower-dimensional vector).
|
EXPANDING
|
The conversion contains an expanding conversion such as from a scalar to a vector (or a lower-dimensional vector to a higher-dimensional vector).
|
STRUCT_CAST
|
The conversion contains a cast between layout-compatible structs (such as from Vector to Color).
|
ITERATION
|
The conversion contains an iteration over a collection (such as from a Vector-array to Vector).
|
INCONVERTIBLE
|
No conversion possible.
|
WIDENING_MASK
|
Mask to check for a widening conversion (combination of WIDENING_LOSSY and WIDENING_LOSSLESS).
|
NARROWING_REDUCING_MASK
|
Mask to check for a narrowing or reducing conversion (combination of NARROWING and REDUCING).
|
◆
GET_DATATYPE_POLICY
GET_DATATYPE_POLICY controls the behavior of GetDataType for special cases.
Enumerator
|
NONE
|
|
GENERIC_FOR_UNKNOWN
|
Set this flag if the datatype of Generic shall be returned for a type which hasn't been registered (otherwise a compile-time error happens unless ERROR_FOR_UNKNOWN is set).
|
ERROR_FOR_UNKNOWN
|
Set this flag if a runtime error shall be returned by
CheckedGetDataType
for a type which hasn't been registered (otherwise a compile-time error happens unless GENERIC_FOR_UNKNOWN is set).
|
NO_DECAY
|
Set this flag if the template argument T of GetDataType shall not be decayed (by default the type is decayed so that T&, T&&, const T, const T&, const T&& all return the same as
GetDataType<T>()
).
|
ALLOW_BASEARRAY
|
|
RESULT_FOR_UNKNOWN_MASK
|
|
◆
DATATYPEMODE
Enumerator
|
SMALLISPOD
|
|
SMALL
|
|
BIG
|
|
◆
INNERMOST_MEMBER
◆
COMPARERESULT
数据
type for comparison results.
Enumerator
|
LESS
|
result is less than
|
EQUAL
|
result is equal
|
GREATER
|
result is greater than
|
INCOMPARABLE
|
values are incomparable (either a compare function doesn't exist, or we have a partial order)
|
◆
EQUALITY
EQUALITY is used for the second parameter of the IsEqual-function of collections. It controls whether the collection shall do the equality check on its values using == or IsEqual.
Enumerator
|
SHALLOW
|
A shallow equality-test shall be done. For pointers or (non-copy-on-write) references the object identity (pointer value) is used.
|
DEEP
|
A deep equality-test shall be done. For pointers or (non-copy-on-write) references the referenced objects are compared for equality.
|
Function Documentation
◆
__attribute__()
[1/4]
__attribute__
|
(
|
(always_inline)
|
|
)
|
const
|
Copy assignment.
User-defined literal to allow floating-point constants with the Float datatype of the MAXON API. E.g. instead of writing 1.0 or 1.0f better write 1.0_f to use the Float type.
Aligns
value
according to
alignment
.
alignment
has to be a power of two, then the function returns the smallest value not less than
value
which is a multiple of
alignment
.
-
参数
-
[in]
|
value
|
Value to align.
|
[in]
|
alignment
|
Required alignment, must be a power of two.
|
-
返回
-
Aligned value (multiple of
alignment
closest to and not less than
value
).
Aligns
value
according to
alignment
.
alignment
has to be a power of two, then the function returns the smallest pointer value not pointing below
value
which is a multiple of
alignment
.
-
参数
-
[in]
|
value
|
Pointer value to align.
|
[in]
|
alignment
|
Required alignment, must be a power of two.
|
-
返回
-
Aligned pointer value (multiple of
alignment
closest to and not less than
value
).
◆
StringInterface_GetAndCacheConstString()
[1/2]
const
String
& maxon::StringInterface_GetAndCacheConstString
|
(
|
const wchar_t *
|
str
,
|
|
|
Int
|
len
|
|
)
|
|
|
Internal
. Forwards to
StringInterface::GetAndCacheConstString
, this allows to use CONSTSTRING and the literal operator _s in uninstantiated template code without having to include
string.h
◆
StringInterface_GetAndCacheConstString()
[2/2]
const
String
& maxon::StringInterface_GetAndCacheConstString
|
(
|
const
Char
*
|
str
,
|
|
|
Int
|
len
,
|
|
|
Int
|
isUtf8
|
|
)
|
|
|
Internal
. Forwards to
StringInterface::GetAndCacheConstString
, this allows to use CONSTSTRING and the literal operator _s in uninstantiated template code without having to include
string.h
◆
PrivateIsUtf8()
constexpr
Bool
maxon::PrivateIsUtf8
|
(
|
const char *
|
str
,
|
|
|
Int
|
len
|
|
)
|
|
|
|
constexpr
|
◆
operator""_s()
[1/2]
const
String
& maxon::operator""_s
|
(
|
const char *
|
str
,
|
|
|
std::size_t
|
cnt
|
|
)
|
|
|
Returns a
String
object of the characters passed in quotation marks. If the same characters are used in another place the
String
will still only be created once in memory. In the following example the second loop is far more efficient because the
String
is created only once whereas in the first loop the characters are converted to unicode and a new
String
object is created (and deleted) on each iteration.
for
(...)
{
if
(s.FindIndex(
String
(
"A is created each time."
)) == 0) ...
}
for
(...)
{
if
(s.FindIndex(
"B is created only once."
_s) == 42) ...
}
As MSVC does not properly resolve \u sequences for char* you need to use the wchar_t version below for any characters >=0x80.
◆
operator""_s()
[2/2]
const
String
& maxon::operator""_s
|
(
|
const wchar_t *
|
str
,
|
|
|
std::size_t
|
cnt
|
|
)
|
|
|
Returns a
String
object of the characters passed in quotation marks. This version can be used for unicode characters, e.g. L"t\u00e8st"_s.
◆
GlobalToString()
Forwards to ToString function overloads. A call to GlobalToString can be used within a class if the class itself declares a ToString member function (which is quite common): Then this function hides the ToString functions of enclosing namespaces, and to call them you either have to write
maxon::ToString
(but then you have to be sure that the function is in the maxon namespace), or just GlobalToString (which utilizes argument-dependent lookup and, thus, finds ToString functions in all related namespaces).
-
参数
-
[in]
|
object
|
Some object to be converted to a string.
|
[in]
|
formatStatement
|
Nullptr or additional formatting instruction. See also
Formatting Integer values
.
|
[in]
|
checkDataType
|
Must be set to true (the default value), only for internal use.
|
-
返回
-
The converted result.
◆
~EmptyVirtualClass()
◆
MakeDependentExpr()
E&& maxon::MakeDependentExpr
|
(
|
E &&
|
value
|
)
|
|
Artificially makes the given expression value dependent on a template type parameter T. This can be used in function templates when an expression contains an incomplete type at its point of definition (so that compilers complain), but the type will be complete when the template is instantiated later.
-
Template Parameters
-
T
|
A template type parameter on which the expression shall be made dependent.
|
-
参数
-
[in]
|
value
|
The expression value.
|
-
返回
-
The forwarded expression value.
◆
addressof()
T* std::maxon_std::addressof
|
(
|
T &
|
x
|
)
|
|
◆
MAXON_ENUM_LIST()
[1/4]
◆
MAXON_ENUM_LIST()
[2/4]
◆
MaxonStart()
Bool
maxon::MaxonStart
|
(
|
int
|
argc
,
|
|
|
SysChar
**
|
argv
,
|
|
|
InitMTable
|
initSystemTable
,
|
|
|
Binary *
|
optionalDependency
=
nullptr
|
|
)
|
|
|
◆
MaxonEnd()
◆
Helper()
◆
MAXON_CONCAT()
[1/2]
◆
MAXON_MAKE_LIST()
◆
MAXON_CONCAT()
[2/2]
◆
__attribute__()
[2/4]
UseVariable creates a little bit of code that makes sure that you won't get a warning for an unused variable. or the unused return value of an expression. You can also use this macro to make sure a speed test is not removed by the compiler, otherwise the example would be completely removed by the compiler's optimizer.
Please note that UseVariable will create a little bit of extra code, therefore do not use it in speed critical code.
Float
sum = 0.0;
for
(
Int64
i = 0; i < 10000000; i++)
{
sum +=
Sin
((
Float
)i);
}
UseVariable(sum);
◆
TestForCopyFromFunction()
◆
__attribute__()
[3/4]
__attribute__
|
(
|
(always_inline)
|
|
)
|
&
|
Calls new (&dst) T(src) or dst.CopyFrom(src) for non-trivial objector copy constructor.
◆
__attribute__()
[4/4]
__attribute__
|
(
|
(always_inline)
|
|
)
|
&
|
Converting copy assignment.
◆
Destruct()
void maxon::Destruct
|
(
|
T *
|
object
|
)
|
|
Destructs the object.
-
Template Parameters
-
-
参数
-
[out]
|
object
|
The object to destruct.
|
◆
Reset()
void maxon::Reset
|
(
|
T &
|
object
|
)
|
|
Resets the object to the state of a default-constructed T. This function destructs obj and then default-constructs a new T in place.
-
Template Parameters
-
-
参数
-
[out]
|
object
|
The object to reset.
|
◆
MergeDataDictionaries()
Result
<void> maxon::MergeDataDictionaries
|
(
|
DataDictionary &
|
base
,
|
|
|
const DataDictionary &
|
other
,
|
|
|
Bool
|
mergeSubContainers
|
|
)
|
|
|
MergeDataDictionaries combines the two given data dictionaries into the base dictionary. The same keys in 'other' will overwrite the base values.
-
参数
-
[in]
|
base
|
Dictionary to merge as the base.
|
[in]
|
other
|
Dictionary to merge into base. this values will overwrite values with the same key in 'base'.
|
[in]
|
mergeSubContainers
|
True if sub dictionaries inside the dictionary should be merged recursively as well. False if the dictionary is treated like atomic data.
|
-
返回
-
OK on success.
◆
MergeDataDictionariesPreferBase()
Result
<void> maxon::MergeDataDictionariesPreferBase
|
(
|
DataDictionary &
|
base
,
|
|
|
const DataDictionary &
|
other
,
|
|
|
Bool
|
mergeSubContainers
|
|
)
|
|
|
◆
GetDataDescriptionValueI()
GetDataDescriptionValueI returns a data description value from the data base.
-
参数
-
[in]
|
databaseScope
|
Database id.
|
[in]
|
attributeData
|
Attribute to query.
|
[in]
|
keyPtr
|
Key to query.
|
-
返回
-
数据
on success.
◆
GetDataDescriptionValue()
static
Result
<typename IsFidClass<ATTRIBUTETYPE>::type> maxon::GetDataDescriptionValue
|
(
|
ATTRIBUTETYPE &&
|
attribute
,
|
|
|
KEY &&
|
key
|
|
)
|
|
|
|
static
|
Returns the defined description value of any attribute. Example usage:
Int32
min =
GetDataDescriptionValue
(MACHINEINFO::NUMBEROFPROCESSORS, DESCRIPTION::DATA::BASE::MINVALUE)
iferr_return
;
Int32
max =
GetDataDescriptionValue
(MACHINEINFO::NUMBEROFPROCESSORS, DESCRIPTION::DATA::BASE::MAXVALUE)
iferr_return
;
-
参数
-
[in]
|
attribute
|
Attribute to find.
|
[in]
|
key
|
Value to return, e.g. DESCRIPTION::DATA::BASE::MAXVALUE.
|
-
返回
-
Requested value on success. The return type will be determined by the data type of ATTRIBUTETYPE.
◆
GetDataDescriptionValue2()
static
Result
<TT> maxon::GetDataDescriptionValue2
|
(
|
ATTRIBUTETYPE &&
|
attribute
,
|
|
|
const
ConstDataPtr
&
|
key
|
|
)
|
|
|
|
static
|
◆
GetDataDescriptionValueFromKey()
static
Result
<typename IsFidClass<KEY>::type> maxon::GetDataDescriptionValueFromKey
|
(
|
ATTRIBUTETYPE &&
|
attribute
,
|
|
|
KEY &&
|
key
|
|
)
|
|
|
|
static
|
Returns the defined key value description of any attribute. Example usage:
BaseArray<Tuple<Id, Data>> dataTypeList =
GetDataDescriptionValueFromKey
(DESCRIPTION::DATA::BASE::DATATYPE, DESCRIPTION::DATA::BASE::ENUM)
iferr_return
;
-
参数
-
[in]
|
attribute
|
Attribute to find.
|
[in]
|
key
|
Value to return, e.g. DESCRIPTION::DATA::BASE::ENUM.
|
-
返回
-
Requested value on success. The return type will be determined by the data type of KEY.
◆
GetDefaultFromFidIfAvailable()
[1/2]
TT maxon::GetDefaultFromFidIfAvailable
|
(
|
KEY &&
|
key
,
|
|
|
OverloadRank0
|
|
|
)
|
|
|
◆
GetDefaultFromFidIfAvailable()
[2/2]
◆
GetDefaultValueKey()
Returns the
Id
of DESCRIPTION::DATA::BASE::DEFAULTVALUE.
◆
TransferPropertyIfAvailable()
Result
<void> maxon::TransferPropertyIfAvailable
|
(
|
const SRCCLASS &
|
src
,
|
|
|
PROPSRCTYPE &&
|
srcType
,
|
|
|
DSTCLASS &
|
dst
,
|
|
|
PROPDSTTYPE &&
|
dstType
|
|
)
|
|
|
TransferPropertyIfAvailable copies the value of src into dst if available.
-
参数
-
[in]
|
src
|
Source object.
|
[in]
|
srcType
|
Source property type id.
|
[in]
|
dst
|
Destination object.
|
[in]
|
dstType
|
Destination property type id.
|
-
返回
-
OK on success.
◆
MAXON_DECLARATION()
[1/35]
maxon::MAXON_DECLARATION
|
(
|
Class
< DataDictionaryObjectRef >
|
,
|
|
|
DataDictionaryObjectEmptyClass
|
,
|
|
|
"net.maxon.class.datadictionaryobjectempty"
|
|
|
)
|
|
|
Implementation of the
DataDictionaryObjectInterface
without any data stored. This class can be used as a base component for you own inherited classes which overrides SetData/GetData.
◆
MAXON_DECLARATION()
[2/35]
maxon::MAXON_DECLARATION
|
(
|
Class
< DataDictionaryObjectRef >
|
,
|
|
|
DataDictionaryObjectClass
|
,
|
|
|
"net.maxon.class.datadictionaryobject"
|
|
|
)
|
|
|
Implementation of the
DataDictionaryObjectInterface
without locking, so it's not threadsafe.
◆
MAXON_DECLARATION()
[3/35]
maxon::MAXON_DECLARATION
|
(
|
Class
< DataDictionaryObjectRef >
|
,
|
|
|
DataDictionaryObjectLockedClass
|
,
|
|
|
"net.maxon.class.datadictionaryobjectlocked"
|
|
|
)
|
|
|
Implementation of the
DataDictionaryObjectInterface
with a spinlock protected hashmap, so it's threadsafe.
◆
MAXON_DECLARATION()
[4/35]
maxon::MAXON_DECLARATION
|
(
|
Class
< DataDictionaryObjectRef >
|
,
|
|
|
DataDictionaryObjectSyncedClass
|
,
|
|
|
"net.maxon.class.datadictionaryobjectsynced"
|
|
|
)
|
|
|
Implementation of the
DataDictionaryObjectInterface
with a lockfree hashmap, so it's threadsafe.
◆
MAXON_DECLARATION()
[5/35]
maxon::MAXON_DECLARATION
|
(
|
Class
< DataDictionaryReferenceObjectRef >
|
,
|
|
|
DataDictionaryObjectReferenceClass
|
,
|
|
|
"net.maxon.class.datadictionaryobjectreference"
|
|
|
)
|
|
|
Implementation of the
DataDictionaryObjectInterface
with a reference to a DataDictionary. This allows to pass DataDictionary to all functions expecting a DataDictionaryObjectRef.
◆
CreateDataDictionaryReferenceObject()
[1/2]
Result
<DataDictionaryObjectRef> maxon::CreateDataDictionaryReferenceObject
|
(
|
DataDictionary *
|
reference
|
)
|
|
Creates a DataDictionaryObjectRef for a given DataDictionary pointer. All calls to SetData, GetData, EraseData will be routed to the DataDictionary. So this allows to pass a DataDictionary to all functions which expect a DataDictionaryObjectRef. Important: the DataDictionary object needs to be saved and be valid all the time. Otherwise it will crash.
-
参数
-
[in]
|
reference
|
Pointer to a DataDictionary.
|
-
返回
-
DataDictionaryObjectRef which wraps the DataDictionary.
◆
CreateDataDictionaryReferenceObject()
[2/2]
Result
<DataDictionaryObjectRef> maxon::CreateDataDictionaryReferenceObject
|
(
|
const DataDictionary *
|
reference
|
)
|
|
◆
GetDataDictionaryFromDataDictionaryObjectRef()
Result
<DataDictionary> maxon::GetDataDictionaryFromDataDictionaryObjectRef
|
(
|
const DataDictionaryObjectRef &
|
ref
|
)
|
|
Returns a DataDictionary copy the given DataDictionaryObjectRef.
-
参数
-
[in]
|
ref
|
Reference to a DataDictionaryObjectRef.
|
-
返回
-
DataDictionary with the copy of all data.
◆
PrivateGetDataType()
[1/56]
◆
PrivateGetDataType()
[2/56]
◆
PrivateGetDataType()
[3/56]
◆
PrivateGetDataType()
[4/56]
◆
PrivateGetDataType()
[5/56]
◆
PrivateGetDataType()
[6/56]
◆
PrivateGetDataType()
[7/56]
◆
PrivateGetDataType()
[8/56]
◆
PrivateGetDataType()
[9/56]
◆
PrivateDataTypeMarker()
[1/31]
void maxon::PrivateDataTypeMarker
|
(
|
T *
|
|
)
|
|
◆
MAXON_REGISTRY()
maxon::MAXON_REGISTRY
|
(
|
DataType
|
,
|
|
|
DataTypes
|
,
|
|
|
"net.maxon.registry.datatypes"
|
|
|
)
|
|
|
This registry is used to register all primary data types (those which are declared by MAXON_DATATYPE, and interfaces). It does not include compound data types such as array, tuple or reference types. Use
DataType::Get()
to obtain a
DataType
for a data type identifier, whether it is primary or compound.
◆
PrivateDataTypeMarker()
[2/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Char
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[6/35]
◆
PrivateGetDataType()
[10/56]
◆
PrivateDataTypeMarker()
[3/31]
void* maxon::PrivateDataTypeMarker
|
(
|
UChar
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[7/35]
◆
PrivateGetDataType()
[11/56]
◆
PrivateDataTypeMarker()
[4/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Int16
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[8/35]
◆
PrivateGetDataType()
[12/56]
◆
PrivateDataTypeMarker()
[5/31]
void* maxon::PrivateDataTypeMarker
|
(
|
UInt16
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[9/35]
◆
PrivateGetDataType()
[13/56]
◆
PrivateDataTypeMarker()
[6/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Int32
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[10/35]
◆
PrivateGetDataType()
[14/56]
◆
PrivateDataTypeMarker()
[7/31]
void* maxon::PrivateDataTypeMarker
|
(
|
UInt32
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[11/35]
◆
PrivateGetDataType()
[15/56]
◆
PrivateDataTypeMarker()
[8/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Int64
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[12/35]
◆
PrivateGetDataType()
[16/56]
◆
PrivateDataTypeMarker()
[9/31]
void* maxon::PrivateDataTypeMarker
|
(
|
UInt64
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[13/35]
◆
PrivateGetDataType()
[17/56]
◆
PrivateDataTypeMarker()
[10/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Utf16Char
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[14/35]
◆
PrivateGetDataType()
[18/56]
◆
PrivateDataTypeMarker()
[11/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Utf32Char
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[15/35]
◆
PrivateGetDataType()
[19/56]
◆
PrivateDataTypeMarker()
[12/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Float32
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[16/35]
◆
PrivateGetDataType()
[20/56]
◆
PrivateDataTypeMarker()
[13/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Float64
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[17/35]
◆
PrivateGetDataType()
[21/56]
◆
PrivateDataTypeMarker()
[14/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Bool
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[18/35]
◆
PrivateGetDataType()
[22/56]
◆
PrivateDataTypeMarker()
[15/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Byte
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[19/35]
◆
PrivateGetDataType()
[23/56]
◆
PrivateDataTypeMarker()
[16/31]
void* maxon::PrivateDataTypeMarker
|
(
|
AInt
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[20/35]
◆
PrivateGetDataType()
[24/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[1/10]
maxon::MAXON_ASSERT_LEGAL_LAYOUT
|
(
|
AInt
|
|
)
|
|
◆
PrivateDataTypeMarker()
[17/31]
void* maxon::PrivateDataTypeMarker
|
(
|
AUInt
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[21/35]
◆
PrivateGetDataType()
[25/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[2/10]
maxon::MAXON_ASSERT_LEGAL_LAYOUT
|
(
|
AUInt
|
|
)
|
|
◆
PrivateDataTypeMarker()
[18/31]
void* maxon::PrivateDataTypeMarker
|
(
|
AFloat
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[22/35]
◆
PrivateGetDataType()
[26/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[3/10]
maxon::MAXON_ASSERT_LEGAL_LAYOUT
|
(
|
AFloat
|
|
)
|
|
◆
PrivateDataTypeMarker()
[19/31]
void* maxon::PrivateDataTypeMarker
|
(
|
HashValue
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[23/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_HashValue
|
,
|
|
|
"net.maxon.datatype.hash"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[27/56]
◆
PrivateDataTypeMarker()
[20/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Id
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[24/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_Id
|
,
|
|
|
"net.maxon.datatype.id"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[28/56]
◆
PrivateDataTypeMarker()
[21/31]
void* maxon::PrivateDataTypeMarker
|
(
|
LiteralId
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[25/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_LiteralId
|
,
|
|
|
"net.maxon.datatype.literalid"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[29/56]
◆
PrivateDataTypeMarker()
[22/31]
void* maxon::PrivateDataTypeMarker
|
(
|
InternedId
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[26/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_InternedId
|
,
|
|
|
"net.maxon.datatype.internedid"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[30/56]
◆
PrivateDataTypeMarker()
[23/31]
void* maxon::PrivateDataTypeMarker
|
(
|
数据
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[27/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_Data
|
,
|
|
|
"net.maxon.datatype.data"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[31/56]
◆
PrivateDataTypeMarker()
[24/31]
void* maxon::PrivateDataTypeMarker
|
(
|
UnitType
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[28/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_UnitType
|
,
|
|
|
"net.maxon.datatype.unittype"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[32/56]
◆
PrivateDataTypeMarker()
[25/31]
◆
MAXON_DECLARATION()
[29/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_SourceLocation
|
,
|
|
|
"net.maxon.datatype.sourcelocation"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[33/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[4/10]
◆
PrivateDataTypeMarker()
[26/31]
◆
MAXON_DECLARATION()
[30/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_DelegateBase
|
,
|
|
|
"net.maxon.datatype.delegatebase"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[34/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[5/10]
◆
PrivateGetEnumDataType()
◆
PrivateGetDataType()
[35/56]
◆
PrivateGetDataType()
[36/56]
◆
PrivateGetDataType()
[37/56]
◆
PrivateGetDataType()
[38/56]
◆
PrivateGetDataType()
[39/56]
◆
PrivateGetDataType()
[40/56]
◆
PrivateGetDataType()
[41/56]
◆
PrivateGetDataType()
[42/56]
◆
PrivateGetDataType()
[43/56]
◆
PrivateGetDataType()
[44/56]
◆
PrivateGetDataType()
[45/56]
◆
PrivateGetDataType()
[46/56]
◆
PrivateGetDataType()
[47/56]
◆
PrivateGetDataType()
[48/56]
◆
GetDataType()
const auto & GetDataType
|
(
|
|
)
|
|
Returns the
DataType
representation of T. This covers not only primary datatypes which have been registered directly with MAXON_DATATYPE_REGISTER, but also compound types which are derived from other types (such as arrays, pointers, references, tuples).
-
Template Parameters
-
T
|
Type for which the
DataType
shall be obtained.
|
POLICY
|
An optional policy for the operation.
|
-
返回
-
The
DataType
representation for T.
Returns the
DataType
for the given C++ type.
const
DataType& type = GetDataType<T>();
const
DataType& type = GetDataType<Tuple<Int, String>>();
-
Template Parameters
-
T
|
Type of which the
DataType
representation shall be obtained.
|
POLICY
|
Optional parameter to modify the data type resolution.
|
-
返回
-
DataType
for T.
◆
PrivateGetDataType()
[49/56]
◆
PrivateDataTypeMarker()
[27/31]
◆
MAXON_DECLARATION()
[31/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_ConstDataPtr
|
,
|
|
|
"net.maxon.datatype.constdataptr"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[50/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[6/10]
◆
PrivateDataTypeMarker()
[28/31]
void* maxon::PrivateDataTypeMarker
|
(
|
DataPtr
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[32/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_DataPtr
|
,
|
|
|
"net.maxon.datatype.dataptr"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[51/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[7/10]
maxon::MAXON_ASSERT_LEGAL_LAYOUT
|
(
|
DataPtr
|
|
)
|
|
◆
PrivateDataTypeMarker()
[29/31]
◆
MAXON_DECLARATION()
[33/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_MoveDataPtr
|
,
|
|
|
"net.maxon.datatype.movedataptr"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[52/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[8/10]
◆
PrivateDataTypeMarker()
[30/31]
◆
MAXON_DECLARATION()
[34/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_ForwardingDataPtr
|
,
|
|
|
"net.maxon.datatype.forwardingdataptr"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[53/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[9/10]
◆
PrivateDataTypeMarker()
[31/31]
void* maxon::PrivateDataTypeMarker
|
(
|
Member
*
|
|
)
|
|
◆
MAXON_DECLARATION()
[35/35]
maxon::MAXON_DECLARATION
|
(
|
maxon::DataType
|
,
|
|
|
DT_Member
|
,
|
|
|
"net.maxon.datatype.member"
|
|
|
)
|
|
|
◆
PrivateGetDataType()
[54/56]
◆
MAXON_ASSERT_LEGAL_LAYOUT()
[10/10]
maxon::MAXON_ASSERT_LEGAL_LAYOUT
|
(
|
Member
|
|
)
|
|
◆
PrivateGetDataType()
[55/56]
◆
PrivateGetDataType()
[56/56]
◆
MAXON_ENUM_FLAGS()
[1/2]
◆
MAXON_ENUM_FLAGS()
[2/2]
◆
MAXON_DETECT_MEMBER_HELPER()
◆
DescribeIO()
◆
MAXON_ENUM_LIST()
[3/4]
◆
DecltypeNewInstanceHelper()
Result
<void*> maxon::DecltypeNewInstanceHelper
|
(
|
const void *
|
|
)
|
|
◆
PrivateNewInterfaceInstance()
[1/2]
◆
PrivateNewInterfaceInstance()
[2/2]
◆
MAXON_ENUM_ORDERED_LIST()
[1/2]
◆
MAXON_ENUM_ORDERED_LIST()
[2/2]
◆
MAXON_ENUM_LIST()
[4/4]
◆
LexicographicalGreaterThan()
[1/2]
Bool
maxon::LexicographicalGreaterThan
|
(
|
|
)
|
|
◆
LexicographicalGreaterThan()
[2/2]
Bool
maxon::LexicographicalGreaterThan
|
(
|
const T1 &
|
a1
,
|
|
|
const T1 &
|
b1
,
|
|
|
const TN &...
|
ab
|
|
)
|
|
|
Lexicographically compares the tuple (a1, a2, ...) against (b1, b2, ...). (a1, a2) is greater than (b1, b2) if a1 > b1, or if a1 == b1 and a2 > b2 (and so forth for the remaining tuple elements). In other words, the first pair ai, bi which is not equal determines the relationship between the tuples.
-
参数
-
[in]
|
a1
|
First value of first tuple.
|
[in]
|
b1
|
First value of second tuple.
|
[in]
|
ab
|
The remaining values of the tuples (in the order a2, b2, a3, b3, ...).
|
-
返回
-
True if (a1, a2, ...) is lexicographically greater than (b1, b2, ...).
◆
LexicographicalLessThan()
[1/2]
Bool
maxon::LexicographicalLessThan
|
(
|
|
)
|
|
◆
LexicographicalLessThan()
[2/2]
Bool
maxon::LexicographicalLessThan
|
(
|
const T1 &
|
a1
,
|
|
|
const T1 &
|
b1
,
|
|
|
const TN &...
|
ab
|
|
)
|
|
|
Lexicographically compares the tuple (a1, a2, ...) against (b1, b2, ...). (a1, a2) is less than (b1, b2) if a1 < b1, or if a1 == b1 and a2 < b2 (and so forth for the remaining tuple elements). In other words, the first pair ai, bi which is not equal determines the relationship between the tuples.
-
参数
-
[in]
|
a1
|
First value of first tuple.
|
[in]
|
b1
|
First value of second tuple.
|
[in]
|
ab
|
The remaining values of the tuples (in the order a2, b2, a3, b3, ...).
|
-
返回
-
True if (a1, a2, ...) is lexicographically less than (b1, b2, ...).
◆
LexicographicalCompare()
[1/2]
◆
LexicographicalCompare()
[2/2]
COMPARERESULT
maxon::LexicographicalCompare
|
(
|
const T1 &
|
a1
,
|
|
|
const T1 &
|
b1
,
|
|
|
const TN &...
|
ab
|
|
)
|
|
|
Lexicographically compares the tuple (a1, a2, ...) against (b1, b2, ...). For the lexicographic order, (a1, a2) is greater than (b1, b2) if a1 > b1, or if a1 == b1 and a2 > b2 (and so forth for the remaining tuple elements). If all values are equal, the tuples are equal, in the remaining cases (a1, a2) is less than (b1, b2). In other words, the first pair ai, bi which is not equal determines the relationship between the tuples.
-
参数
-
[in]
|
a1
|
First value of first tuple.
|
[in]
|
b1
|
First value of second tuple.
|
[in]
|
ab
|
The remaining values of the tuples (in the order a2, b2, a3, b3, ...).
|
-
返回
-
Lexicographic comparison of the tuples (a1, a2, ...), (b1, b2, ...).
◆
Compare()
◆
MAXON_DATATYPE()
maxon::MAXON_DATATYPE
|
(
|
SplineMapperKnot
|
,
|
|
|
"net.maxon.datatype.splinemapperknot"
|
|
|
)
|
|
|
◆
DataDictionaryIterator()
[1/2]
◆
GetOrDefault()
[1/2]
std::conditional<std::is_void<T>::value, typename IsFidClass<KEY>::type, T>::type GetOrDefault
|
(
|
KEY &&
|
key
|
)
|
const
|
◆
DataDictionaryIterator()
[2/2]
◆
GetOrDefault()
[2/2]
std::conditional<std::is_void<T>::value, typename IsFidClass<KEY>::type, T>::type GetOrDefault
|
(
|
KEY &&
|
key
|
)
|
const
|
◆
AssertType()
In debug configuration, checks if this type is the same as #T and writes warnings to the console if not. This functions does nothing in release configuration.
-
Template Parameters
-
◆
Is()
Returns true if this type is the same as #T.
{t.Is<T>()} is a shorthand for
{t ==
GetDataType<T>()
}.
-
Template Parameters
-
-
返回
-
True if this type is #T, false otherwise.
◆
AddConversion()
◆
IsCastableFrom()
Checks if a value of type
T
can be cast safely to a value of this type. This holds if either both types are the same, have the same underlying type, or this type is Generic, or both types are reference or pointer types and the type to which this type points is a base type of the type to which
T
points (see IsBaseOfOrSame).
-
Template Parameters
-
-
返回
-
True if a value of this data type can be safely cast from a value of type
T
.
◆
IsCastableTo()
Checks if a value of this type can safely be cast to a value of type
T
.
-
另请参阅
-
IsBaseOfOrSame
.
-
Template Parameters
-
-
返回
-
True if a value of this data type can be safely cast from a value of type
T
.
◆
Create()
Creates a
数据
and initializes it with the given type.
-
Template Parameters
-
T
|
Type of data which shall be created.
|
-
返回
-
数据
initialized to the given type on success.
◆
GetCopy()
Returns a copy of the data.
◆
InitSet()
[1/2]
void InitSet
|
(
|
T &&
|
data
|
)
|
|
|
private
|
Private: Copy or move specific data into a
数据
from the constructur.
-
参数
-
[in]
|
data
|
数据
to copy or move to this.
|
◆
InitSet()
[2/2]
void InitSet
|
(
|
数据
&&
|
data
|
)
|
|
◆
SetImpl()
[1/4]
◆
SetImpl()
[2/4]
◆
SetImpl()
[3/4]
◆
SetImpl()
[4/4]
◆
GetPtr()
[1/2]
Returns the pointer of the native data if its type matches the given type T, otherwise nullptr.
-
Template Parameters
-
-
返回
-
Pointer to the data in native format.
◆
GetPtr()
[2/2]
◆
Set()
[1/4]
void Set
|
(
|
const T &
|
value
|
)
|
|
◆
ToString()
◆
DataTypePtr()
◆
Get()
[1/3]
◆
Set()
[2/4]
◆
Set()
[3/4]
◆
Set()
[4/4]
◆
Get()
[2/3]
◆
Get()
[3/3]
Variable Documentation
◆
Byte
A byte.
◆
KEEP
◆
InvalidArrayIndex
const
Int
InvalidArrayIndex
static
|
|
Invalid array index (e.g. returned for an array index out of bounds).
◆
MAXON_FLEXIBLE_ARRAY_LENGTH
const
Int
MAXON_FLEXIBLE_ARRAY_LENGTH
static
|
|
Use this as the bound of an array which is the last member of a class and shall have a flexible array length. Usually you can just leave the array bound empty (like in
{Int b[];}), this non-standard extension declares a flexible array member and is supported by MSVC, Clang, ICC and GCC. However there are cases such as a member type with non-trivial destructor where a flexible array member isn't supported, then you can use MAXON_FLEXIBLE_ARRAY_LENGTH. Example:
struct
MyStruct
{
Int
a;
Int
b[
MAXON_FLEXIBLE_ARRAY_LENGTH
];
};
...
MyStruct* s =
MAXON_SAFE_PLACEMENT_NEW
(
NewMem
(
Char
,
SIZEOF
(MyStruct) +
SIZEOF
(
Int
) * (cnt -
MAXON_FLEXIBLE_ARRAY_LENGTH
))) MyStruct();
-
警告
-
This may only be used if the class has standard-layout. Also you have to implement default constructor, destructor and copy operations properly. Keep in mind that the actual class instance may have less elements than the compiler thinks.
◆
DONT_INITIALIZE
◆
IN_PLACE
◆
TestForCopyFromFunction
decltype(std::declval<T>().CopyFrom(std::declval<const T&>())) TestForCopyFromFunction(
OverloadRank1
)
|
◆
src
◆
OK
OK can be used for comparison with a
Result
value and as a return value of a function returning
Result<void>
. It indicates the success of an operation:
Result<void> Func()
{
if
(...)
return
OutOfMemoryError(
MAXON_SOURCE_LOCATION
);
return
OK
;
}
if
(Func() ==
OK
)
{
...
}
It can also be used where an Error is expected, then it constructs a null Error reference which actually means that no error occurred.
◆
CheckedGetDataType
◆
MAXON_ENUM_FLAGS_CLASS
◆
MAXON_ENUM_ORDERED_LIST
◆
_helper
#define SPLINEMAPPER_KNOT_GET_ID(flags)
定义:
splinemapper.h:21
#define MAXON_WARN_MUTE_FUNCTION_LENGTH
定义:
apibase.h:2660
maxon::Int Int
定义:
ge_sys_math.h:62
#define MAXON_WARN_MUTE_NAMING
定义:
apibase.h:2670
#define MAXON_DEPRECATED_ENUMVALUE(name, value, reason)
定义:
apibase.h:140
#define MAXON_IMPLICIT
定义:
apibase.h:168
maxon::Float Float
定义:
ge_sys_math.h:64
#define SPLINEMAPPER_KNOT_SET_ID(flags, flag_id)
定义:
splinemapper.h:27
#define MAXON_DATATYPE(type, id)
定义:
datatype.h:309
return OK
定义:
apibase.h:2532
BLUE
定义:
lib_birender.h:67
static Result< typename IsFidClass< KEY >::type > GetDataDescriptionValueFromKey(ATTRIBUTETYPE &&attribute, KEY &&key)
定义:
datadictionary.h:397
#define iferr_return
定义:
resultbase.h:1434
#define MAXON_SOURCE_LOCATION
定义:
memoryallocationbase.h:66
GREEN
定义:
lib_birender.h:66
Col3< Float, 1 > Color
定义:
vector.h:82
static const Int MAXON_FLEXIBLE_ARRAY_LENGTH
定义:
apibase.h:298
static Result< typename IsFidClass< ATTRIBUTETYPE >::type > GetDataDescriptionValue(ATTRIBUTETYPE &&attribute, KEY &&key)
定义:
datadictionary.h:369
#define SIZEOF(x)
Calculates the size of a datatype or element.
定义:
apibasemath.h:205
#define MAXON_DATATYPE_REGISTER(type)
定义:
datatype.h:344
RED
定义:
lib_birender.h:65
maxon::Int32 Int32
定义:
ge_sys_math.h:58
PrivateOverloadRank3 * OverloadRank3
See OverloadRank0.
定义:
apibase.h:618
MAXON_ATTRIBUTE_FORCE_INLINE Float32 Sin(Float32 val)
Calculates the sine of a value.
定义:
apibasemath.h:198
#define MAXON_DATATYPE_REGISTER_STRUCT(type,...)
定义:
datatype.h:419
maxon::Int64 Int64
定义:
ge_sys_math.h:60
#define NewMem(T, cnt)
定义:
defaultallocator.h:196
maxon::Bool Bool
定义:
ge_sys_math.h:53
#define MAXON_SAFE_PLACEMENT_NEW(PTR)
定义:
compilerdetection.h:520
maxon::Char Char
定义:
ge_sys_math.h:54