Template_Lambda_Class_Type

class Template_Lambda_Class_Type (concrete, logical)

a lambda closure class in a dependent context

Implemented interfaces:
Direct parents:
Ancestor classes and implemented interfaces:

Composite_Type, Declarative_Node, Lambda_Class_Interface, Logical_IR_Root, Member, Named_Entity, Named_Type, Primary_Link_Object_Interface, Record_Type, Symbol, Template_Base_Interface, Template_Base_Specialization_Interface, Template_Composite_Type_Interface, Template_Interface, Template_Type_Interface, Type, Unmanaged_Record_Type, Unnamed_Composite_Interface, Unnamed_Record_Type

Field

Kind

Type

Description

Extends (from Record_Type)

syntactic

list of class Direct_Extends_Relation

inheritance direct base classes in declaration order; they each list indirect bases

Usings (from Record_Type)

syntactic

set of class Using

using elements of a base class, maybe with different accessibility

Fields (from Record_Type)

syntactic

list of class Field

non-static fields in order of offsets for this class (excluding inherited ones)

File (from Composite_Type)

attribute

builtin String

the file in which this composite was defined needed for merging copies of the same class if local to different DLLs for unnamed composites, this and Line is used to identify identical unnamed composites

Nested_Types (from Composite_Type)

syntactic

set of class Named_Type

Methods (from Composite_Type)

syntactic

set of class Method

Instance methods, excluding static methods and constructors. Since Axivion Suite 7.9, this set includes the destructors.

Template_Composites (from Composite_Type)

syntactic

set of interface Template_Composite_Type_Interface

Template_Methods (from Composite_Type)

syntactic

set of interface Template_Routine_Interface

Friend_Of (from Composite_Type)

semantic

set of class Named_Type

Classes this class is a friend of. (i.e. this class may access private members of the classes in this set) This is the opposite of Friends.

Static_Methods (from Composite_Type)

syntactic

set of class Member_Routine

All static methods of this class (in error cases sometimes also non-static ones, e.g., conversion operators)

Friends (from Composite_Type)

semantic

set of class Named_Entity

All routines and types that have been declared as friends. (set of other classes that may access private members of this class) Can include routines, classes, templates, template type parameters.

Constructors (from Composite_Type)

syntactic

set of class Constructor

The constructor routines that can instantiate a new object of this class. Note: unions can have constructors, methods and destructors

Destructor (from Composite_Type)

semantic

class Destructor

The main destructor for this class. If set, this field points to one of the destructors in Methods. Can be null if the destructor is trivial.

Note: A class can have multiple destructors if C++20 requires-clauses or CUDA __device__ destructors are involved.

Static_Fields (from Composite_Type)

syntactic

set of class Static_Field_Or_Unknown_Member_Interface

All non-inherited static data members of this class. Use a set as they are logically unordered. This set may contain duplicates for local_to_library elements of different DLLs

Attributes (from Composite_Type)

attribute

bitfield Composite_Type_Attributes_Type

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

Discriminator (from Unnamed_Composite_Interface)

attribute

builtin UInt64

Identifies the unnamed type in some way. For nested composites that need to be linked together, the discriminator is N for the Nth unnamed type (in lexical order) within the parent scope (indicated by Contained_In). For namespace-level unnamed types (Contained_In not set), stores a line number/column pair used to identify the composite. Used in compare_unnamed_composite(). Multiple compilation units including the same header must compute the same value for the same unnamed composite.

Contained_In (from Unnamed_Composite_Interface)

semantic

class Symbol

The scope for the discriminator. This is the parent type/field/routine that contains the struct definition.

Link_Flags (from Primary_Link_Object_Interface)

attribute

bitfield Link_Flags_Type

Component (from Primary_Link_Object_Interface)

attribute

builtin String

for local-to-library elements: name of DLL/.so when linked (sealed) for unit-local constexpr variables: name of file

Base_Template_Specialization (from Template_Base_Specialization_Interface)

semantic

class Symbol

in case this is a template instance, Base_Template points to the underlying primary template, and this field indicates the specialization thereof, if any

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

Visibility (from Member)

attribute

enum Visibility_Type

Name (from Named_Entity)

attribute

builtin String