Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

ICS_Types Struct Reference

#include <implicit_conversion.h>

Inheritance diagram for ICS_Types:

Inheritance graph
[legend]
List of all members.

Public Types

typedef Expr_result::Kind Kind
enum  Action {
  a_NullStep, a_LValueToRValue, a_ArrayToPointer, a_FunctionToPointer,
  a_QualificationAdjustment, a_IntegralPromotion, a_FloatingPromotion, a_IntegralConversion,
  a_FloatingConversion, a_FloatingIntegralConversion, a_PointerConversion, a_PtrMemConversion,
  a_BoolConversion, a_DerivedToBaseConversion, a_CtorCall, a_ConversionOp,
  a_Ellipsis, a_BindReferenceToTemporary
}
 Actions that can be done in an ICS step. More...

enum  Form { f_NoForm, f_Standard, f_Userdef, f_Ellipsis }
 Forms of an ICS. More...

enum  Rank { r_NoRank, r_Exact, r_Promotion, r_Conversion }
 Ranks of an ICS. More...

enum  Compare { c_CompareAll, c_CompareWithInitRules, c_CompareBeforeUserConversion }
 Comparing two ICSs. More...


Member Typedef Documentation

typedef Expr_result::Kind ICS_Types::Kind
 

Definition at line 91 of file implicit_conversion.h.

Referenced by ICS_Step::ICS_Step().


Member Enumeration Documentation

enum ICS_Types::Action
 

Actions that can be done in an ICS step.

Enumeration values:
a_NullStep 
a_LValueToRValue 
a_ArrayToPointer 
a_FunctionToPointer 
a_QualificationAdjustment 
a_IntegralPromotion 
a_FloatingPromotion 
a_IntegralConversion 
a_FloatingConversion 
a_FloatingIntegralConversion 
a_PointerConversion 
a_PtrMemConversion 
a_BoolConversion 
a_DerivedToBaseConversion 
a_CtorCall 
a_ConversionOp 
a_Ellipsis 
a_BindReferenceToTemporary 

Definition at line 31 of file implicit_conversion.h.

Referenced by ICS_Step::ICS_Step().

enum ICS_Types::Compare
 

Comparing two ICSs.

These are parameters to Implicit_conversion::is_better_than().

Enumeration values:
c_CompareAll  Compare the ICSs according to the normal ordering rules.

This one's used for overload resolutions.

c_CompareWithInitRules  Compare the ICSs only after the user-defined conversion.

This one is used when we initialize a non-class type with a class, so that we pick the best target type (13.3.1.5).

c_CompareBeforeUserConversion  Compare the ICSs only before the user-defined conversion.

This is used when we copy-initialize a class with a non-matching type, so that we pick the best constructor (13.3.1.4).

Definition at line 77 of file implicit_conversion.h.

Referenced by generate_implicit_conversion().

enum ICS_Types::Form
 

Forms of an ICS.

Enumeration values:
f_NoForm 
f_Standard 
f_Userdef 
f_Ellipsis 

Definition at line 60 of file implicit_conversion.h.

Referenced by Implicit_conversion::add_step(), and Implicit_conversion::get_form().

enum ICS_Types::Rank
 

Ranks of an ICS.

Enumeration values:
r_NoRank 
r_Exact 
r_Promotion 
r_Conversion 

Definition at line 68 of file implicit_conversion.h.

Referenced by Implicit_conversion::add_step(), Implicit_conversion::get_rank(), and Implicit_conversion::scs_is_better_than().


The documentation for this struct was generated from the following file:
Generated on Mon Feb 10 17:35:39 2003 for VFiasco Semantics Compiler by doxygen1.2.15