datatypebase.h File Reference

Classes

struct  DataMemBlock
 
class  DataTypePtr
 
class  DataTypeImpl
 
class  DataTypeImpl::Primary
 
class  DataTypeImpl::Instantiated
 
class  DataType
 
class  DataType::Primary
 
class  Data
 
struct  IsZeroInitialized< Data >
 
class  ConstDataPtr
 
class  ConstDataPtr::Wrapper< T, CHECK >
 
class  DataPtr
 
class  MoveDataPtr
 
struct  ForwardingDataPtr
 
class  TrivialDataPtr
 
class  AbstractDataTypeFunctions
 

Namespaces

 maxon
 

Enumerations

enum class  CONVERSION_FLAGS {
  NONE ,
  NARROWING ,
  WIDENING_LOSSY ,
  WIDENING_LOSSLESS ,
  REDUCING ,
  EXPANDING ,
  STRUCT_CAST ,
  ITERATION ,
  INCONVERTIBLE ,
  WIDENING_MASK ,
  NARROWING_REDUCING_MASK
}
 
enum class  GET_DATATYPE_POLICY {
  NONE ,
  GENERIC_FOR_UNKNOWN ,
  ERROR_FOR_UNKNOWN ,
  RESULT_FOR_UNKNOWN_MASK
}
 

Functions

enum maxon::CONVERSION_FLAGS MAXON_ENUM_FLAGS (CONVERSION_FLAGS)
 
enum maxon::GET_DATATYPE_POLICY MAXON_ENUM_FLAGS (GET_DATATYPE_POLICY)
 
template<typename T , GET_DATATYPE_POLICY POLICY>
const auto & GetDataType ()
 

Variables

 NONE
 
 NARROWING
 
 WIDENING_LOSSY
 
 WIDENING_LOSSLESS
 
 REDUCING
 
 EXPANDING
 
 STRUCT_CAST
 
 ITERATION
 
 INCONVERTIBLE
 
 WIDENING_MASK
 
 NARROWING_REDUCING_MASK
 
 GLOBALLY_REFERENCED
 
 OWNS_NULL_VALUE
 
 ORDERED_TYPE_ONLY
 
 UNORDERED_BY_NAME
 
 GENERIC_DOWNCAST
 
 GENERIC_FOR_UNKNOWN
 
 ERROR_FOR_UNKNOWN
 
 RESULT_FOR_UNKNOWN_MASK
 

Variable Documentation

◆ NONE

NONE

When no other flags are set, the conversion is a one-to-one correspondence (such as from Float to TimeValue and back).

◆ NARROWING

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

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

WIDENING_LOSSLESS

The conversion contains a lossless widening conversion.

◆ REDUCING

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

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

STRUCT_CAST

The conversion contains a cast between layout-compatible structs (such as from Vector to Color).

◆ ITERATION

ITERATION

The conversion contains an iteration over a collection (such as from a Vector-array to Vector).

◆ INCONVERTIBLE

INCONVERTIBLE

No conversion possible.

◆ WIDENING_MASK

WIDENING_MASK

Mask to check for a widening conversion (combination of WIDENING_LOSSY and WIDENING_LOSSLESS).

◆ NARROWING_REDUCING_MASK

NARROWING_REDUCING_MASK

Mask to check for a narrowing or reducing conversion (combination of NARROWING and REDUCING).

◆ GLOBALLY_REFERENCED

GLOBALLY_REFERENCED

The data type is globally referenced and AddReference() and RemoveReference() should not access its reference counter.

◆ OWNS_NULL_VALUE

OWNS_NULL_VALUE

◆ ORDERED_TYPE_ONLY

ORDERED_TYPE_ONLY

When tuple or container types are compared, members have to match only in order and type, their names are ignored.

◆ UNORDERED_BY_NAME

UNORDERED_BY_NAME

When tuple or container types are compared, members are matched by name, so their order is ignored.

◆ GENERIC_DOWNCAST

GENERIC_DOWNCAST

Consider the instantiation of a generic type the same as the generic type.

◆ GENERIC_FOR_UNKNOWN

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

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).

◆ RESULT_FOR_UNKNOWN_MASK

RESULT_FOR_UNKNOWN_MASK