23#define INTRINSIC_IDX(I) (static_cast<std::size_t>(I) - static_cast<std::size_t>(Intrinsic::Abort))
#define INTRINSIC_IDX(I)
Definition IntrinsicAdept.hpp:23
Definition IntrinsicAdept.hpp:26
IntrinsicAdept(const IntrinsicAdept &)=delete
void setIntrinsicIdent(const Intrinsic intrinsic, const String &ident)
virtual Vector< std::size_t > getIntrinsicOutputParameterIndices(const Intrinsic intrinsic) const =0
void throwAmbiguousIntrinsicCall(const Intrinsic intrinsic, const Vector< ExpressionPtr > &args)
void fillOverloadedIntrinsicIdents()
virtual TypeDenoterPtr getIntrinsicReturnType(const Intrinsic intrinsic, const Vector< ExpressionPtr > &args, const TypeDenoterPtr &prefixTypeDenoter=nullptr) const =0
Array< String, numIntrinsics > mIntrinsicIdents
Definition IntrinsicAdept.hpp:63
const String & getIntrinsicIdent(const Intrinsic intrinsic) const
virtual Vector< TypeDenoterPtr > getIntrinsicParameterTypes(const Intrinsic intrinsic, const Vector< ExpressionPtr > &args) const =0
IntrinsicAdept & operator=(const IntrinsicAdept &)=delete
static const IntrinsicAdept & get()
virtual ~IntrinsicAdept()
static const std::size_t numIntrinsics
Definition IntrinsicAdept.hpp:61
Intrinsic
Intrinsics function enumeration (currently only HLSL intrinsics).
Definition ASTEnums.hpp:980
@ StreamOutputRestartStrip
SPtr< TypeDenoter > TypeDenoterPtr
Definition TypeDenoter.hpp:29
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
std::array< T, N > Array
Array is a container that encapsulates fixed size arrays.
Definition Array.hpp:17
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25