Dependent_Type¶
- class Dependent_Type (concrete, logical)¶
Used for:
Nested types in template parameters (e.g.,
typename T::M)Dependent instances of template classes (e.g.,
std::vector<T>when T is also dependent)Instances of template template parameters (e.g.,
C<int>intemplate<template<typename> typename C> C<int> c;)Nested types within other dependent types (e.g.,
typename C<int>::template NestedTemplate<double>)
- Implemented interfaces:
implements Template_Type_Interface
implements Template_Base_Interface
implements Dependent_Composite_Type_Interface
- Direct parents:
inherits Named_Type
- Ancestor classes and implemented interfaces:
Declarative_Node, Dependent_Composite_Type_Interface, Logical_IR_Root, Member, Named_Entity, Named_Type, Symbol, Template_Base_Interface, Template_Interface, Template_Type_Interface, Type
Field
Kind
Type
Description
Size (from Type)
attribute
builtin Natural
Alignment_Log (from Type)
attribute
builtin Byte
log2 of the type’s alignment
Alignment (from Type)
attribute
builtin Natural
Alignment of the type (must be a power of 2)
Size_In_Bits (from Type)
attribute
builtin UInt64
Size of the type, in bits.
Parent (from Logical_IR_Root)
semantic
class Logical_IR_Root
Physical (from Logical_IR_Root)
semantic to physical
class Physical_IR_Root
Template_Parameters (from Template_Interface)
syntactic
list of interface Template_Parameter_Interface
Mangled_Requires_Clause (from Template_Interface)
attribute
builtin String
Base_Template (from Template_Base_Interface)
semantic
class Symbol
usually, a Template_Interface, but could also be a normal method/nested class inside a template
Template_Arguments (from Template_Base_Interface)
syntactic
list of class Template_Argument
Is_Partial_Specialization (from Template_Base_Interface)
attribute
builtin Boolean
Is_Full_Specialization (from Template_Base_Interface)
attribute
builtin Boolean
Is_Template_Instance (from Template_Base_Interface)
attribute
builtin Boolean
Nested_Types (from Dependent_Composite_Type_Interface)
syntactic
set of class Named_Type
Nested_Objects (from Dependent_Composite_Type_Interface)
syntactic
set of class Object
Visibility (from Member)
attribute
enum Visibility_Type
Name (from Named_Entity)
attribute
builtin String