Conversion_Kind

enum Conversion_Kind

Field

Constant in module

Description

Unknown

ir.conversion_unknown

template dependent or any other conversion

Identity

ir.conversion_identity

no change in type: might change only the value category, or might be a redundant cast.

Qualifier

ir.conversion_qualifier

E.g., int* to const int*; also used for const_cast removing qualifiers.

Derived_To_Base

ir.conversion_derived_to_base

Cast from derived to base; works with pointers and references to class types.

Base_To_Derived

ir.conversion_base_to_derived

Cast from base to derived; works with pointers and references to class types. Uses static_cast semantics.

Dynamic_Cast

ir.conversion_dynamic_cast

Base<->derived cast; works with pointers and references to class types. Uses dynamic_cast semantics.

Pointer_To_Member_Derived_To_Base

ir.conversion_pointer_to_member_derived_to_base

Pointer_To_Member_Base_To_Derived

ir.conversion_pointer_to_member_base_to_derived

Bool

ir.conversion_bool

int/float/ptr to bool

Discard

ir.conversion_discard

cast to void

Numeric

ir.conversion_numeric

integral, enum, floating-point or floating-integral cast

Vector_Fill

ir.conversion_vector_fill

convert from scalar to vector

Reinterpret_Cast

ir.conversion_reinterpret_cast

cast between unrelated pointer types; or ptr<->int cast.

Null_Pointer

ir.conversion_null_pointer

E.g., integer literal 0 to pointer

Array_To_Pointer

ir.conversion_array_to_pointer

Function_To_Pointer

ir.conversion_function_to_pointer

Managed_Boxing

ir.conversion_managed_boxing

C++/CLI boxing conversion (e.g., int to Object^).

Managed_Unboxing

ir.conversion_managed_unboxing

C++/CLI unboxing conversion (e.g., Object^ to int)