apibase.h File Reference

Detailed Description

Main include file

Classes

struct  IntType< 1 >
 
struct  IntType< 2 >
 
struct  IntType< 4 >
 
struct  IntType< 8 >
 
struct  UIntType< 1 >
 
struct  UIntType< 2 >
 
struct  UIntType< 4 >
 
struct  UIntType< 8 >
 
struct  StandardType< T, INTEGRAL >
 
struct  StandardType< T, true >
 
class  GenericComponent
 
class  EmptyClass
 
class  EmptyVirtualClass
 
class  SFINAEHelper< T, CHECK >
 
struct  is_constructible< maxon::Generic, const maxon::Generic & >
 
class  PrivateOverloadRank0
 
class  PrivateOverloadRank1
 
class  PrivateOverloadRank2
 
class  PrivateOverloadRank3
 
class  PrivateOverloadRank4
 
class  PrivateOverloadRank5
 
struct  AlwaysFalse< T >
 
struct  And< true, REST... >
 
struct  And< false, REST... >
 
struct  And<>
 
class  Protected< SUPER >
 
class  ConstIf< T, MAKECONST >
 
class  ConstIf< T, true >
 
class  InheritConst< T, INHERIT_FROM >
 
class  InheritConst< T, const INHERIT_FROM >
 
class  Substitute< T, R >
 
class  Substitute< T &, R >
 
class  Substitute< T &&, R >
 
struct  ParameterPackContainsAll< PACK, X >
 
struct  ParameterPackContainsAll< PACK, ParameterPack< X... > >
 
struct  ParameterPack< T >
 
struct  ParameterPack< T >::IndexOf< X >
 
struct  ParameterPack< T, REST... >
 
struct  ParameterPack< T, REST... >::IndexOf< X >
 
struct  GetSignature< RET(ARGS...)>
 
struct  GetSignature< RET(*)(ARGS...)>
 
struct  GetSignature< RET(CALLABLE::*)(ARGS...)>
 
struct  GetSignature< RET(CALLABLE::*)(ARGS...) const >
 
class  CommonLValue< T, A, B >
 
class  CommonType< A, B >
 
class  EnableIfFlag< T, FLAGS, A, B >
 
class  IsCompleteBase< T, Int, value >
 
class  IsComplete< T, COUNTER >
 
struct  GetReferencedType< T, DEF, typename >
 
struct  GetReferencedType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::ReferencedType >::type >
 
struct  GetConstReferencedType< T, DEF, typename >
 
struct  GetConstReferencedType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::ConstReferencedType >::type >
 
struct  GetDirectlyReferencedType< T, DEF, typename >
 
struct  GetDirectlyReferencedType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::DirectlyReferencedType >::type >
 
struct  GetErasedType< T, DEF, typename >
 
struct  GetErasedType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::ErasedType >::type >
 
struct  GetDirectlyReferencedTypeCheckConstAndPtr< REF >
 
struct  IsAllocType< T, DEF, typename >
 
struct  IsAllocType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::IsAllocType >::type >
 
struct  IsNonvirtualInterfaceType< T, DEF, typename >
 
struct  IsNonvirtualInterfaceType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::NonvirtualInterfaceMarker >::type >
 
struct  IsVirtualInterfaceType< T, DEF, typename >
 
struct  IsVirtualInterfaceType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::InterfaceMarker >::type >
 
struct  IsInterfaceType< T, DEF, typename >
 
struct  IsInterfaceType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::MTable >::type >
 
struct  GetValueType< T, DEF, typename >
 
struct  GetValueType< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::ValueType >::type >
 
struct  CheckHasBase< T, DEF, typename >
 
struct  CheckHasBase< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::HasBaseDetector >::type >
 
struct  GetNonConst< T, DEF, typename >
 
struct  GetNonConst< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::NonConst >::type >
 
struct  GetHandler< T, DEF, typename >
 
struct  GetHandler< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::Handler >::type >
 
class  IsReferenceClass< T >
 
class  IsObjectReferenceClass< T >
 
struct  IsPartiallyOrdered< T, DEF, typename >
 
struct  IsPartiallyOrdered< T, DEF, typename maxon::SFINAEHelper< void, typename std::decay< T >::type::PartiallyOrdered >::type >
 
struct  IsTriviallyEquatable< T >
 
struct  IsTriviallyHashable< T, typename >
 
struct  IsTriviallyHashable< T, decltype(T::TriviallyHashable())>
 
struct  IsZeroInitialized< T >
 
struct  IsZeroInitialized< Generic >
 
class  HasBaseHelper< D, B, HAS_BASE_DETECTOR_OR_SAME >
 
class  HasBaseHelper< D, B, 1 >
 
class  HasBaseHelper< D, B, 2 >
 
struct  HasBaseHelper< Generic, InternedId, 0 >
 
struct  DefaultHasBase< D >
 
struct  DefaultHasBase< D >::Check< I >
 
struct  MakeLValueConst< T >
 
struct  MakeLValueConst< T & >
 
struct  CheckHasBaseHelper< DT, BT >
 
struct  CheckHasBaseHelper< T, T >
 
struct  HasBaseDetector< D, B >
 
struct  IsDerived< BASE >
 
struct  IsDerived< BASE >::Check< DERIVED >
 
struct  HasErasedBase< D, B >
 
struct  GenericCastMemberTrait< TO, FROM, SAFE, typename >
 
struct  GenericCastMemberTrait< const TO &, FROM, SAFE >
 
struct  GenericCastMemberTrait< const TO &, FROM &, SAFE >
 
struct  GenericCastMemberTrait< TO &, FROM &, SAFE >
 
struct  GenericCastMemberTrait< const TO *, FROM *, SAFE >
 
struct  GenericCastMemberTrait< TO *, FROM *, SAFE >
 
struct  GenericCastTrait< TO, FROM, SAFE, typename >
 
class  ByValueParam< T >
 
class  MultiplicativePromotion< T1, T2, Bool >
 
class  MultiplicativePromotion< T1, T2, false >
 
class  MultiplicativePromotion< GenericArithmetic, T, true >
 
class  MultiplicativePromotion< T, GenericArithmetic, true >
 
class  MultiplicativePromotion< GenericArithmetic, GenericArithmetic, true >
 
class  Dereference< T, ALSO_REFS >
 
class  Dereference< BaseRef< T, HANDLER >, false >
 
class  ForEach
 
class  UnitType
 
class  GenericArithmetic
 
class  ThreadReferencedError
 
struct  ValueKindHelper< T, REF >
 
struct  ValueKindHelper< T *, REF >
 
struct  ValueKindHelper< T, true >
 
struct  ValueKindHelper< ObjectInterface, false >
 
class  GetCollectionKind< COLLECTION, ENABLE >
 
struct  TestForCopyFromMember< T >
 
class  ObjectConstructor< T, hasCopyFrom >
 
class  ObjectConstructor< T, false >
 
struct  HasInit< DETECTORINPUTTYPE >
 
struct  HasInit< DETECTORINPUTTYPE >::Default
 
struct  HasInit< DETECTORINPUTTYPE >::Derived
 
struct  AlignedStorage< SIZE, ALIGN >
 
class  DefaultLValue< VALUETYPE >
 

Namespaces

 maxon
 
 std
 
 std::maxon_std
 
 maxon::details
 

Macros

#define MAXON_API_ABI_VERSION
 
#define MAXON_CORE_FRAMEWORK_VERSION
 
#define DOXYGEN_SWITCH(CPP, DOX)
 
#define DOXYGEN_SWITCH_REVERSED(DOX, ...)
 
#define MAXON_DEPENDENCY_ENABLE
 
#define MAXON_DEPENDENCY_ENABLEtrue
 
#define MAXON_PREPROCESSOR_CONDITION(X)
 
#define MAXON_ATTRIBUTE_DLL_PUBLIC
 
#define MAXON_ATTRIBUTE_NO_INLINE
 
#define MAXON_ATTRIBUTE_FORCE_INLINE
 
#define MAXON_ATTRIBUTE_FORCE_RELEASE_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 MAXON_CACHE_LINE_SIZE
 
#define MAXON_FALSE_SHARING_SIZE
 
#define MAXON_HAS_TRUE_TYPE(E)
 
#define OVERLOAD_MAX_RANK
 
#define MAXON_MEMBERFUNCTION_DETECTOR(Name)
 
#define MAXON_MEMBERTYPE_DETECTOR(Name, Member, Default)
 
#define PRIVATE_MAXON_DEFAULT_REFERENCE_CONSTRUCTORS(Cls, ...)
 
#define MAXON_DEFAULT_REFERENCE_CONSTRUCTORS(Cls, ...)
 
#define MAXON_UNIQUE_REFERENCE_CONSTRUCTORS(Cls, ...)
 
#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_IS_COW_KIND(kind)
 
#define MAXON_SCOPE
 
#define MAXON_WARN_MUTE_FUNCTION_LENGTH
 
#define MAXON_WARN_MUTE_NAMING
 
#define MAXON_TARGET_UNITY_MODE
 
#define PRIVATE_MAXON_REGISTER_CHECK(NAME)
 

Typedefs

using Int16 = int16_t
 
using UInt16 = uint16_t
 
using Int32 = int32_t
 
using UInt32 = uint32_t
 
using Int64 = int64_t
 
using UInt64 = uint64_t
 
using Bool = bool
 
using Float32 = float
 
using Float64 = double
 
using Char = char
 
using UChar = unsigned char
 
using Int = Int64
 
using UInt = UInt64
 
using Float = Float64
 
using Utf32Char = char32_t
 
using Utf16Char = char16_t
 
using SysChar = char
 
using HashInt = UInt
 
using OverloadRank0 = PrivateOverloadRank0 *
 
using OverloadRank1 = PrivateOverloadRank1 *
 
using OverloadRank2 = PrivateOverloadRank2 *
 
using OverloadRank3 = PrivateOverloadRank3 *
 
using OverloadRank4 = PrivateOverloadRank4 *
 
using OverloadRank5 = PrivateOverloadRank5 *
 
using OverloadRankMax = OverloadRank5
 
template<typename T , Int N>
using AddArrayT = T[N]
 
template<typename T >
using AddArrayOfUnknownBoundT = T[]
 
template<typename TO , typename FROM , Bool SAFE>
using GenericCastReturnType = std::enable_if< GenericCastTrait< TO, typename maxon::details::MakeLValueConst< FROM >::type, SAFE >::value, typename GenericCastTrait< TO, typename maxon::details::MakeLValueConst< FROM >::type, SAFE >::ReturnType >
 
using InitMTable = void(*)()
 
using DestructorPointer = void(*)(const void *)
 
using BoolLValue = DefaultLValue< Bool >
 

Enumerations

enum class  ENUM_DONT_INITIALIZE { VALUE }
 
enum class  IN_PLACE_TYPE { VALUE }
 
enum class  VALUEKIND : UInt64 {
  NONE ,
  VOID_TYPE ,
  GENERIC ,
  GENERIC_ARITHMETIC ,
  SCALAR ,
  INTEGRAL ,
  FLOATING_POINT ,
  ENUM ,
  ENUM_LIST ,
  ENUM_FLAGS ,
  DATA ,
  DATAPTR ,
  NONVIRTUAL_INTERFACE ,
  VIRTUAL_INTERFACE ,
  REF_OR_POINTER ,
  POINTER ,
  STRONG_REFERENCE ,
  COW_REFERENCE ,
  UNIQUE_REFERENCE ,
  ACOW_REFERENCE ,
  LV_REFERENCE ,
  RV_REFERENCE ,
  TUPLE ,
  STRUCT ,
  SIMD ,
  BLOCK ,
  STRIDED_BLOCK ,
  BASEARRAY ,
  BLOCKARRAY ,
  RESULT ,
  DELEGATE ,
  FUNCTION ,
  CONST_QUALIFIED ,
  SOURCE_LEVEL ,
  DEEP_CONSTNESS ,
  INT_SIZE_OR_LESS ,
  ZERO_INITIALIZED ,
  ORDERED ,
  TRIVIALLY_CONSTRUCTIBLE ,
  TRIVIALLY_DESTRUCTIBLE ,
  TRIVIALLY_COPYABLE ,
  TRIVIALLY_EQUATABLE ,
  TRIVIALLY_HASHABLE ,
  OBJECT_REF ,
  VALUE ,
  ELEMENT_TYPE_AS_ARG ,
  NEVER_NULLPTR ,
  SIGNED ,
  GENERIC_INSTANTIATION ,
  ABSTRACT ,
  NAMED ,
  CONTAINER_REF ,
  GENERIC_CONTAINER ,
  RECURSIVE_CONTAINER ,
  RESOLVED_RECURSIVE_CONTAINER ,
  CONTAINER ,
  EMPTY_CONTAINER ,
  VIRTUAL_TUPLE_CONTAINER ,
  STATIC_ARRAY_CONTAINER ,
  ARRAY_CONTAINER ,
  ARRAY ,
  CONTAINER_MASK ,
  NAMED_TUPLE ,
  CONTAINS_RECURSIVE_CONTAINER ,
  CONTAINS_INVALID_TYPE ,
  BUNDLE ,
  MIN_DERIVED_CONTAINER ,
  MIN_ARRAY_CONTAINER ,
  MAX_ARRAY_CONTAINER ,
  COW_MASK ,
  STRONG_MASK ,
  PTR_MASK ,
  CONTAINER_OR_REF ,
  REFERENCE_MASK ,
  ARITHMETIC_MASK ,
  TUPLE_MASK ,
  TUPLE_INHERIT_MASK ,
  POINTER_FLAGS ,
  QUALIFIER_MASK ,
  CONTAINS_MASK
}
 
enum class  COLLECTION_KIND {
  NONE ,
  ARRAY ,
  SET ,
  MAP
}
 

Functions

 __attribute__ ((always_inline)) const expr Float operator""_f(long double f)
 
const StringStringInterface_GetAndCacheConstString (const wchar_t *str, Int len)
 
const StringStringInterface_GetAndCacheConstString (const Char *str, Int len, Int isUtf8)
 
constexpr Bool PrivateIsUtf8 (const char *str, Int len)
 
const Stringoperator""_s (const char *str, std::size_t cnt)
 
const Stringoperator""_s (const wchar_t *str, std::size_t cnt)
 
template<typename T >
String GlobalToString (const T &object, const FormatStatement *formatStatement, Bool checkDataType=true)
 
template<typename T , typename E >
E && MakeDependentExpr (E &&value)
 
template<typename T >
T * addressof (T &x)
 
template<typename T >
 __attribute__ ((always_inline)) auto AssignCopy(T &dst
 
enum maxon::ENUM_DONT_INITIALIZE MAXON_ENUM_LIST (ENUM_DONT_INITIALIZE)
 
enum maxon::IN_PLACE_TYPE MAXON_ENUM_LIST (IN_PLACE_TYPE)
 
template<typename T >
std::enable_if<(sizeof(T) > 0), std::true_type >::type IsCompleteHelper (T *)
 
std::false_type IsCompleteHelper (...)
 
template<typename TO , typename FROM >
GenericCastReturnType< TO, FROM, false >::type GenericReinterpretCast (FROM &&value)
 
template<typename TO , typename FROM >
GenericCastReturnType< TO, FROM, true >::type GenericUpCast (FROM &&value)
 
template<typename T >
NullValue ()
 
 Helper (OverloadRank2, T &obj MAXON_MAKE_LIST(PRIVATE_MAXON_DETECT_MEMBER_HELPER1,,,,)) -> decltype(obj. GetMemorySize(MAXON_MAKE_COMMA_LIST(PRIVATE_MAXON_DETECT_MEMBER_HELPER2,,,)))
 
 Helper (OverloadRank1, T &obj MAXON_MAKE_LIST(PRIVATE_MAXON_DETECT_MEMBER_HELPER1,,,,)) -> decltype(GetMemorySize(obj MAXON_MAKE_LIST(PRIVATE_MAXON_DETECT_MEMBER_HELPER3,,,,)))
 
 Helper (T &obj MAXON_MAKE_LIST(PRIVATE_MAXON_DETECT_MEMBER_HELPER1,,,,)) -> decltype(MAXON_CONCAT(GetMemorySize, Helper)(((maxon::OverloadRankMax) nullptr), obj MAXON_MAKE_LIST(PRIVATE_MAXON_DETECT_MEMBER_HELPER3,,,,)))
 
template<typename X >
T & __attribute__ ((always_inline)) void UseVariable(X &&var)
 
enum maxon::VALUEKIND UInt64 MAXON_ENUM_ORDERED_FLAGS (VALUEKIND, "net.maxon.datatype.enum.valuekind", EARLY)
 
enum maxon::COLLECTION_KIND MAXON_ENUM_LIST (COLLECTION_KIND)
 
template<typename T >
 __attribute__ ((always_inline)) T &MAXON_REMOVE_CONST(const T &value)
 
template<typename T >
 __attribute__ ((always_inline)) T *MAXON_REMOVE_CONST(const T *value)
 
template<typename T >
decltype(std::declval< T >().CopyFrom(std::declval< const T & >())) TestForCopyFromFunction (OverloadRank1)
 
template<typename T >
std::false_type TestForCopyFromFunction (OverloadRank0)
 
template<typename T , typename ARG >
 __attribute__ ((always_inline)) auto NewCopy(T &dst
 
template<typename T >
 __attribute__ ((always_inline)) ResultOk< T > NewCopy(T &&src)
 
template<typename T >
void Destruct (const T *object)
 
template<typename T >
DestructorPointer GetDestructorPointer ()
 
template<typename T >
void Reset (T &object)
 
template<typename T , typename... ARGS>
static maxon::ResultOk< T > CreateHelper (OverloadRank0, ARGS &&... args)
 
template<typename T , typename... ARGS>
static std::enable_if< maxon::HasInit< T >::value, maxon::Result< T > >::type CreateHelper (OverloadRank1, ARGS &&... args)
 
template<typename T , typename... ARGS>
static auto Create (ARGS &&... args)
 
constexpr maxon::Float operator""_f (long double f)
 

Variables

enum Byte
 
static const Int InvalidArrayIndex
 
static const Int MAXON_FLEXIBLE_ARRAY_LENGTH
 
const void * g_zeroMemory
 
static constexpr Int ZERO_MEMORY_SIZE
 
static const void *const g_zeroPtr
 
 VALUE
 
static const ENUM_DONT_INITIALIZE DONT_INITIALIZE
 
static const IN_PLACE_TYPE IN_PLACE
 
Int alignment
 
 NONE
 
 VOID_TYPE
 
 GENERIC
 
 GENERIC_ARITHMETIC
 
 SCALAR
 
 INTEGRAL
 
 FLOATING_POINT
 
 ENUM
 
 DATA
 
 DATAPTR
 
 NONVIRTUAL_INTERFACE
 
 VIRTUAL_INTERFACE
 
 REF_OR_POINTER
 
 POINTER
 
 STRONG_REFERENCE
 
 COW_REFERENCE
 
 UNIQUE_REFERENCE
 
 ACOW_REFERENCE
 
 LV_REFERENCE
 
 RV_REFERENCE
 
 TUPLE
 
 STRUCT
 
 SIMD
 
 BLOCK
 
 STRIDED_BLOCK
 
 BASEARRAY
 
 BLOCKARRAY
 
 RESULT
 
 DELEGATE
 
 FUNCTION
 
 CONST_QUALIFIED
 
 SOURCE_LEVEL
 
 DEEP_CONSTNESS
 
 INT_SIZE_OR_LESS
 
 ZERO_INITIALIZED
 
 ORDERED
 
 TRIVIALLY_CONSTRUCTIBLE
 
 TRIVIALLY_DESTRUCTIBLE
 
 TRIVIALLY_COPYABLE
 
 TRIVIALLY_EQUATABLE
 
 TRIVIALLY_HASHABLE
 
 OBJECT_REF
 
 ELEMENT_TYPE_AS_ARG
 
 NEVER_NULLPTR
 
 SIGNED
 
 GENERIC_INSTANTIATION
 
 ABSTRACT
 
 NAMED
 
 CONTAINER_REF
 
 GENERIC_CONTAINER
 
 RECURSIVE_CONTAINER
 
 RESOLVED_RECURSIVE_CONTAINER
 
 CONTAINER
 
 EMPTY_CONTAINER
 
 VIRTUAL_TUPLE_CONTAINER
 
 STATIC_ARRAY_CONTAINER
 
 ARRAY_CONTAINER
 
 ARRAY
 
 CONTAINER_MASK
 
 NAMED_TUPLE
 
 CONTAINS_RECURSIVE_CONTAINER
 
 CONTAINS_INVALID_TYPE
 
 BUNDLE
 
 MIN_DERIVED_CONTAINER
 
 MIN_ARRAY_CONTAINER
 
 MAX_ARRAY_CONTAINER
 
 COW_MASK
 
 STRONG_MASK
 
 PTR_MASK
 
 CONTAINER_OR_REF
 
 REFERENCE_MASK
 
 ARITHMETIC_MASK
 
 TUPLE_MASK
 
 TUPLE_INHERIT_MASK
 
 POINTER_FLAGS
 
 QUALIFIER_MASK
 
 CONTAINS_MASK
 
struct maxon::ValueKindHelper MAXON_ENUM_ORDERED_FLAGS
 
 SET
 
 MAP
 
const ARG & src
 
return OK
 

Macro Definition Documentation

◆ MAXON_API_ABI_VERSION

#define MAXON_API_ABI_VERSION

The ABI version (Application Binary Interface) of the MAXON API. Only modules compiled with the same ABI version are binary-compatible and can be loaded together.

◆ MAXON_CORE_FRAMEWORK_VERSION

#define MAXON_CORE_FRAMEWORK_VERSION

The core framework version is increased with every major application version.

◆ DOXYGEN_SWITCH

#define DOXYGEN_SWITCH (   CPP,
  DOX 
)

◆ DOXYGEN_SWITCH_REVERSED

#define DOXYGEN_SWITCH_REVERSED (   DOX,
  ... 
)

◆ MAXON_DEPENDENCY_ENABLE

#define MAXON_DEPENDENCY_ENABLE

If this macro is undefined while including header files, no automatic dependencies will be set up for the entities declared in the included header files. This should be used with caution. If this mechanism is used, a #undef-#define-pair should surround the includes which shall be ignored for the dependency analysis as in

#undef MAXON_DEPENDENCY_ENABLE
#include "myheader.h" // there won't be any automatic dependencies of the current source file on the entities declared in myheader.h
#define MAXON_DEPENDENCY_ENABLE

This pattern should only be used in cpp files, but not in header files.

◆ MAXON_DEPENDENCY_ENABLEtrue

#define MAXON_DEPENDENCY_ENABLEtrue

◆ MAXON_PREPROCESSOR_CONDITION

#define MAXON_PREPROCESSOR_CONDITION (   X)

Use MAXON_PREPROCESSOR_CONDITION(X) in a header file to tell the source processor that the corresponding includes in register.cpp shall be enclosed by #if X ... #endif. You have to use this for system specific header files. Example:

MAXON_PREPROCESSOR_CONDITION(defined(MAXON_TARGET_IOS) || defined(MAXON_TARGET_MACOS));
MAXON_PREPROCESSOR_CONDITION(defined(MAXON_TARGET_WINDOWS))

◆ MAXON_IS_COW_KIND

#define MAXON_IS_COW_KIND (   kind)

◆ MAXON_TARGET_UNITY_MODE

#define MAXON_TARGET_UNITY_MODE

◆ PRIVATE_MAXON_REGISTER_CHECK

#define PRIVATE_MAXON_REGISTER_CHECK (   NAME)

Function Documentation

◆ __attribute__() [1/2]

__attribute__ ( (always_inline)  ) const &

◆ __attribute__() [2/2]

__attribute__ ( (always_inline)  ) const

◆ operator""_f()

constexpr maxon::Float operator""_f ( long double  f)
constexpr

Variable Documentation

◆ VALUE

VALUE

This flag is set if the type is a value type (such as a scalar, a COW reference or a tuple or array of value types).

◆ NONE

NONE

Not a collection.

◆ VOID_TYPE

VOID_TYPE

The data type represents the void type.

◆ GENERIC

GENERIC

The data type represents the Generic type.

◆ GENERIC_ARITHMETIC

GENERIC_ARITHMETIC

The data type is the abstract base type of all arithmetic types.

◆ SCALAR

SCALAR

The type is a scalar type.

◆ INTEGRAL

INTEGRAL

The type is an integral type (that doesn't include enumeration types).

◆ FLOATING_POINT

FLOATING_POINT

The type is a floating point type.

◆ ENUM

ENUM

The data type is an unnamed enum type created by DataTypeLib::GetEnumType().

◆ DATA

DATA

The data type is Data.

◆ DATAPTR

DATAPTR

The data type is one of ConstDataPtr, DataPtr, MoveDataPtr or ForwardingDataPtr.

◆ NONVIRTUAL_INTERFACE

NONVIRTUAL_INTERFACE

The data type is a non-virtual interface.

◆ VIRTUAL_INTERFACE

VIRTUAL_INTERFACE

The data type consists of a set of virtual interfaces.

◆ REF_OR_POINTER

REF_OR_POINTER

This flag is set for a BaseRef-like reference or a pointer.

◆ POINTER

POINTER

The data type is an ordinary C++ pointer, or a BaseRef with raw pointer semantics, or a C++ reference (then one of LV_REFERENCE or RV_REFERENCE is also set).

◆ STRONG_REFERENCE

STRONG_REFERENCE

The data type is a BaseRef with non-copy-on-write reference-counting semantics.

◆ COW_REFERENCE

COW_REFERENCE

The data type is a BaseRef with copy-on-write semantics.

◆ UNIQUE_REFERENCE

UNIQUE_REFERENCE

The data type is a BaseRef with unique ownership, i.e., the referenced object will be freed on destruction of the BaseRef.

◆ ACOW_REFERENCE

ACOW_REFERENCE

The data type is a BaseRef with always-copy-on-write semantics.

◆ LV_REFERENCE

LV_REFERENCE

The type is an l-value reference type. This flag can only be set in conjunction with POINTER, i.e., C++ references are treated as special pointers.

◆ RV_REFERENCE

RV_REFERENCE

The type is an r-value reference type. This flag can only be set in conjunction with POINTER, i.e., C++ references are treated as special pointers.

◆ TUPLE

TUPLE

The data type is a TupleDataType with anonymous members created by ParametricTypes::Tuple.

◆ STRUCT

STRUCT

The data type has an underlying TupleDataType with named members.

◆ SIMD

SIMD

The data type is a SimdElementType. Such a type has a special memory layout where consecutive elements overlap in memory.

◆ BLOCK

BLOCK

The data type is a Block.

◆ STRIDED_BLOCK

STRIDED_BLOCK

The data type is a strided Block.

◆ BASEARRAY

BASEARRAY

The data type is a BaseArray type.

◆ BLOCKARRAY

BLOCKARRAY

The data type is a BlockArray type.

◆ RESULT

RESULT

The data type is a Result.

◆ DELEGATE

DELEGATE

The type is a DelegateDataType.

◆ FUNCTION

FUNCTION

The type is a FunctionDataType (i.e., a Function<> bound to input and output types).

◆ CONST_QUALIFIED

CONST_QUALIFIED

The type is const-qualified.

◆ SOURCE_LEVEL

SOURCE_LEVEL

The data type is a type at sourcecode level which is represented by a different architecture- and version-dependent type at runtime.

◆ DEEP_CONSTNESS

DEEP_CONSTNESS

The data type obeys deep constness.

◆ INT_SIZE_OR_LESS

INT_SIZE_OR_LESS

Values of the data type fit into an Int.

◆ ZERO_INITIALIZED

ZERO_INITIALIZED

Values of the data type are initialized with zeroes by their default constructor, also set for scalar types.

◆ ORDERED

ORDERED

Values of the data type are ordered (DataType::Compare can be used and implements a total order).

◆ TRIVIALLY_CONSTRUCTIBLE

TRIVIALLY_CONSTRUCTIBLE

Values of the data type are trivially constructible.

◆ TRIVIALLY_DESTRUCTIBLE

TRIVIALLY_DESTRUCTIBLE

Values of the data type are trivially destructible.

◆ TRIVIALLY_COPYABLE

TRIVIALLY_COPYABLE

Values of the data type are trivially copyable.

◆ TRIVIALLY_EQUATABLE

TRIVIALLY_EQUATABLE

Values of the data type are trivially equatable (see IsTriviallyEquatable).

◆ TRIVIALLY_HASHABLE

TRIVIALLY_HASHABLE

Values of the data type are trivially hashable (see IsTriviallyHashable).

◆ OBJECT_REF

OBJECT_REF

This flag is set for a reference or pointer to a virtual object.

◆ ELEMENT_TYPE_AS_ARG

ELEMENT_TYPE_AS_ARG

This flag is set for a parametric type which uses the element type to store the type arguments of the instantiation.

◆ NEVER_NULLPTR

NEVER_NULLPTR

This flag is set for pointer or reference types which never hold a nullptr value.

◆ SIGNED

SIGNED

This flag is set for floating point and signed integer types.

◆ GENERIC_INSTANTIATION

GENERIC_INSTANTIATION

The data type is an instantiation of a generic base type for given arguments.

◆ ABSTRACT

ABSTRACT

The data type is an abstract type (for example Generic or an interface type).

◆ NAMED

NAMED

This flag is set for tuple or container types with named members.

◆ CONTAINER_REF

CONTAINER_REF

The data type is a reference type of a container type.

◆ GENERIC_CONTAINER

GENERIC_CONTAINER

This flag may be set for container types to indicate generic members.

◆ RECURSIVE_CONTAINER

RECURSIVE_CONTAINER

The data type represents a recursive container type.

◆ RESOLVED_RECURSIVE_CONTAINER

RESOLVED_RECURSIVE_CONTAINER

The data type represents a resolved recursive container type (i.e. the underlying type points to the enclosing container type).

◆ CONTAINER

CONTAINER

The data type is a ContainerDataType.

◆ EMPTY_CONTAINER

EMPTY_CONTAINER

The data type is a ContainerDataType.

◆ VIRTUAL_TUPLE_CONTAINER

VIRTUAL_TUPLE_CONTAINER

The data type is a ContainerDataType.

◆ STATIC_ARRAY_CONTAINER

STATIC_ARRAY_CONTAINER

The data type is a ContainerDataType.

◆ ARRAY_CONTAINER

ARRAY_CONTAINER

The data type is a ContainerDataType.

◆ ARRAY

ARRAY

The data type is an ArrayInterface type obtained by DataType::GetArrayType().

The collection is an array.

◆ CONTAINER_MASK

CONTAINER_MASK

The data type is a ContainerDataType.

◆ NAMED_TUPLE

NAMED_TUPLE

The data type is a TupleDataType with named members created by ParametricTypes::Tuple.

◆ CONTAINS_RECURSIVE_CONTAINER

CONTAINS_RECURSIVE_CONTAINER

The data type directly or indirectly contains a recursive container type.

◆ CONTAINS_INVALID_TYPE

CONTAINS_INVALID_TYPE

The data type directly or indirectly contains the InvalidType.

◆ BUNDLE

BUNDLE

The data type is a bundle type.

◆ MIN_DERIVED_CONTAINER

MIN_DERIVED_CONTAINER

◆ MIN_ARRAY_CONTAINER

MIN_ARRAY_CONTAINER

◆ MAX_ARRAY_CONTAINER

MAX_ARRAY_CONTAINER

◆ COW_MASK

COW_MASK

Test mask to check for copy-on-write reference semantics.

◆ STRONG_MASK

STRONG_MASK

Test mask to check for reference counting semantics.

◆ PTR_MASK

PTR_MASK

Test mask any kind of pointer/reference.

◆ CONTAINER_OR_REF

CONTAINER_OR_REF

◆ REFERENCE_MASK

REFERENCE_MASK

◆ ARITHMETIC_MASK

ARITHMETIC_MASK

Test mask for concrete arithmetic types.

◆ TUPLE_MASK

TUPLE_MASK

◆ TUPLE_INHERIT_MASK

TUPLE_INHERIT_MASK

◆ POINTER_FLAGS

POINTER_FLAGS

The VALUEKIND of a pointer.

◆ QUALIFIER_MASK

QUALIFIER_MASK

◆ CONTAINS_MASK

CONTAINS_MASK

◆ SET

SET

The collection is a set.

◆ MAP

MAP

< The collection is a map.