34 std::optional<std::unique_ptr<IType>> pointee_type_;
72 virtual std::unique_ptr<IType>
clone()
const override;
114 virtual std::string
print()
const override;
IType(StorageType storage_type=StorageType::CPU_Stack(), size_t alignment=0, const std::string &initializer="")
Constructs an IType with optional storage, alignment, and initializer.
Definition type.h:638
StorageType storage_type() const
Gets the storage type (const version).
Definition type.h:651
std::string initializer() const
Gets the initializer expression.
Definition type.h:683
size_t alignment() const
Gets the alignment requirement in bytes.
Definition type.h:673
Pointer(StorageType storage_type, size_t alignment, const std::string &initializer, const IType &pointee_type)
Constructs a typed pointer with explicit storage, alignment, and pointee type.
virtual bool operator==(const IType &other) const override
Compares this pointer with another type for equality.
virtual bool is_symbol() const override
Pointers are symbolic types.
virtual std::string print() const override
Returns a string representation of this pointer type.
virtual void replace_symbols(const symbolic::Expression old_expression, const symbolic::Expression new_expression) override
Replace symbolic expressions on this type.
virtual TypeID type_id() const override
Returns TypeID::Pointer.
bool is_pointer_like() const override
Checks if this is a pointer or a structure behaves like a pointer.
Definition pointer.h:93
const IType & pointee_type() const
Gets the type of the object pointed to.
virtual std::unique_ptr< IType > clone() const override
Creates a deep copy of this pointer type.
Pointer()
Constructs an opaque pointer (void* equivalent).
Pointer(StorageType storage_type, size_t alignment, const std::string &initializer)
Constructs an opaque pointer with explicit storage and alignment.
Pointer(const IType &pointee_type)
Constructs a typed pointer to the specified type.
virtual void replace_symbols(const symbolic::ExpressionMapping &replacements) override
virtual PrimitiveType primitive_type() const override
Returns the primitive type of the pointee.
bool has_pointee_type() const
Checks if this pointer has a known pointee type.
Represents the storage location and management characteristics of data.
Definition type.h:64
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
SymEngine::map_basic_basic ExpressionMapping
Definition symbolic.h:109
PrimitiveType
Enumeration of all primitive data types supported by sdfglib.
Definition type.h:35
TypeID
Enumeration of high-level type categories.
Definition type.h:607
Core type system definitions for sdfglib.