FunctionDataType Class Reference

#include <datatype.h>

Inheritance diagram for FunctionDataType:

Detailed Description

FunctionDataType corresponds to the C++ type maxon::Function. Whenever the flag VALUEKIND::FUNCTION is set for a DataType, you can safely cast it to FunctionDataType which gives you access to the input and output types of the function.

Public Member Functions

const TupleDataType & GetOutputs () const
 
const TupleDataType & GetInputs () const
 
- Public Member Functions inherited from DataType
 DataType ()=default
 
 DataType (const DataTypeImpl *ptr)
 
 DataType (std::nullptr_t)=delete
 
 operator Bool () const
 
Bool operator== (const DataType &other) const
 
Bool operator!= (const DataType &other) const
 
HashInt GetHashCode () const
 
UniqueHash GetUniqueHashCode () const
 
const DataTypeImpl * operator-> () const
 
const Id & GetId () const
 
String ToString (const FormatStatement *formatStatement=nullptr) const
 
Int GetSize () const
 
Int GetAlignment () const
 
VALUEKIND GetValueKind () const
 
Bool CheckValueKind (VALUEKIND test) const
 
const DataType & GetUnqualifiedType () const
 
const DataType & ResolveRecursiveType () const
 
const DataType & GetUnderlyingType () const
 
const DataType & GetElementType () const
 
const DataType & GetDecayedType () const
 
Bool HasTypeArguments () const
 
const TypeArguments & GetTypeArguments () const
 
const ParametricTypeInterface * GetParametricType () const
 
const TupleDataType & GetTupleType () const
 
Result< void > AddConversion (const DataType &src, CONVERSION_FLAGS kind, Conversion &&func) const
 
Result< void > Convert (Generic &dest, const ConstDataPtr &src, CONVERSION_FLAGS ignore=CONVERSION_FLAGS::NONE) const
 
template<typename T >
void AssertType () const
 
template<typename T >
Bool Is () const
 
Bool IsCastableFrom (const DataType &other) const
 
template<typename T >
Bool IsCastableFrom () const
 
template<typename T >
Bool IsCastableTo () const
 
enum maxon::DataType::BASE_OF_MODE MAXON_ENUM_FLAGS_CLASS (BASE_OF_MODE)
 
Bool IsBaseOfOrSame (const DataType &other, BASE_OF_MODE mode=BASE_OF_MODE::NONE) const
 
Bool IsSimilar (const DataType &other) const
 
ConstDataPtr GetNullValue () const
 
void Reset ()
 
const DataTypeImpl * PrivateGetPointer () const
 
template<typename DEST , typename SRC >
Result< void > AddConversion (CONVERSION_FLAGS kind, Result< void >(*conversion)(DEST &, const SRC &))
 

Additional Inherited Members

- Public Types inherited from DataType
enum class  BASE_OF_MODE {
  NONE ,
  ORDERED_TYPE_ONLY ,
  UNORDERED_BY_NAME ,
  GENERIC_DOWNCAST
}
 
using Conversion = Delegate< Result< void >(const DataPtr &dest, const ConstDataPtr &src)>
 
- Static Public Member Functions inherited from DataType
static MAXON_ATTRIBUTE_FORCE_INLINE const DataType & NullValue ()
 
static Result< DataType > Get (const Id &typeId)
 
template<typename DEST , typename SRC >
static Result< void > AddConversion (CONVERSION_FLAGS kind, Result< void >(*conversion)(DEST &dest, const SRC &src))
 

Member Function Documentation

◆ GetOutputs()

const TupleDataType& GetOutputs ( ) const

Returns the output types (of the result) of a function.

◆ GetInputs()

const TupleDataType& GetInputs ( ) const

Returns the input types (of the parameters) of a function.