Puma Reference Manual Puma: Puma::CTypeInfo Class Reference



Puma::CTypeInfo Class Reference

#include <Puma/CTypeInfo.h>

Inheritance diagram for Puma::CTypeInfo:

Inheritance graph

List of all members.


Detailed Description

Type information for an entity (class, function, object, etc).

There are two kinds of types: fundamental types like 'int', and compound types like 'class X {int i;}'. Types describe objects, references, or functions.

A type is identified by its ID.

 // check if type is a function type
 if (type.Id() == Puma::CTypeInfo::TYPE_FUNCTION) {
   ...
 }
 // same check
 if (type.TypeFunction()) {
   ...
 }
 // same check
 if (type.isFunction()) {
   ...
 }

Public Types

enum  TypeId {
  TYPE_BOOL,
  TYPE_SIGNED_CHAR,
  TYPE_UNSIGNED_CHAR,
  TYPE_CHAR,
  TYPE_UNSIGNED_SHORT,
  TYPE_SHORT,
  TYPE_UNSIGNED_INT,
  TYPE_WCHAR_T,
  TYPE_INT,
  TYPE_UNSIGNED_LONG,
  TYPE_LONG,
  TYPE_UNSIGNED_LONG_LONG,
  TYPE_LONG_LONG,
  TYPE_FLOAT,
  TYPE_DOUBLE,
  TYPE_LONG_DOUBLE,
  TYPE_VOID,
  TYPE_UNDEFINED,
  TYPE_UNKNOWN_T,
  TYPE_ELLIPSIS,
  TYPE_CLASS,
  TYPE_UNION,
  TYPE_ENUM,
  TYPE_POINTER,
  TYPE_ADDRESS,
  TYPE_MEMBER_POINTER,
  TYPE_FUNCTION,
  TYPE_ARRAY,
  TYPE_VAR_ARRAY,
  TYPE_QUALIFIED,
  TYPE_BIT_FIELD,
  TYPE_TEMPLATE_PARAM,
  TYPE_EMPTY
}
 Type identifiers. More...

Public Member Functions

 CTypeInfo (CTypeInfo *base, TypeId id)
 Constructor.
 ~CTypeInfo ()
 Destructor.
bool operator== (const CTypeInfo &type) const
 Check if this type equals the given type.
bool operator!= (const CTypeInfo &type) const
 Check if this type not equals the given type.
void print (ostream &os) const
 Print the textual representation of this type on the given stream.
void TypeText (ostream &os, const char *name=(const char *) 0, bool abs=false, bool tdef=false, bool elaborated_type_spec=false) const
 Print the textual representation of this type on the given stream.
long int Dimension () const
 Get the dimension of an array type.
long int Size () const
 Get the size in bits of a type.
long int Align () const
 Get the alignment of a type.
TypeId Id () const
 Get the type identifier.
CTypeInfoBaseType () const
 Get the base type of a compound type.
void BaseType (CTypeInfo *base)
 Set the base type of a compount type.
bool isTypedef () const
 Check if this is a typedef type.
CObjectInfoTypedefInfo () const
 Get the typedef information if this is a typedef type.
CTypeInfoTypedefInfo (CObjectInfo *)
 Set the typedef information if this is a typedef type.
bool isComplete (unsigned long pos=0) const
 Check if this is a complete type.
bool isDependent (bool consider_unknown_t=true) const
 Check if this type or one of its base types depends on a template parameter.
bool isConst () const
 Check if this type is const qualified.
bool isVolatile () const
 Check if this type is volatile qualified.
bool isRestrict () const
 Check if this type is restrict qualified.
CRecordRecord () const
 Get the class or union of a class or union type.
CClassInfoClassInfo () const
 Get the class information if this is a class type.
CUnionInfoUnionInfo () const
 Get the union information if this is a union type.
CEnumInfoEnumInfo () const
 Get the enumeration information if this is an enumeration type.
CFunctionInfoFunctionInfo () const
 Get the function information if this is a function type.
CTypeInfoPtrBaseType () const
 Get the base type of a pointer type.
CTypeListArgTypes () const
 Get the argument type list of a function or qualified type.
CTypeInfoVirtualType () const
 Get the virtual type of this type.
CTypeInfoUnqualType () const
 Get the unqualified version of this type.
CTypeFunctionPtrToFct () const
 Get the function type of a pointer-to-function type.
CTypeArrayPtrToArray () const
 Get the array type of a pointer-to-array type.
CTypeQualifiedTypeQualified () const
 Get the pointer to CTypeQualified if this is a qualified type.
CTypeFunctionTypeFunction () const
 Get the pointer to CTypeFunction if this is a function type.
CTypeBitFieldTypeBitField () const
 Get the pointer to CTypeBitField if this is a bit-field type.
CTypePointerTypePointer () const
 Get the pointer to CTypePointer if this is a pointer type.
CTypeMemberPointerTypeMemberPointer () const
 Get the pointer to CTypeMemberPointer if this is a member pointer type.
CTypeAddressTypeAddress () const
 Get the pointer to CTypeAddress if this is a reference type.
CTypeArrayTypeArray () const
 Get the pointer to CTypeArray if this is an array type.
CTypeVarArrayTypeVarArray () const
 Get the pointer to CTypeVarArray if this is a variable length array type.
CTypeClassTypeClass () const
 Get the pointer to CTypeClass if this is a class type.
CTypeUnionTypeUnion () const
 Get the pointer to CTypeUnion if this is a union type.
CTypeRecordTypeRecord () const
 Get the pointer to CTypeRecord if this is a class or union type.
CTypeEnumTypeEnum () const
 Get the pointer to CTypeEnum if this is an enumeration type.
CTypePrimitiveTypePrimitive () const
 Get the pointer to CTypePrimitive if this is a primitive type.
CTypeInfoTypeEmpty () const
 Get the pointer to CTypeInfo if this is type Puma::CTYPE_EMPTY.
CTypeTemplateParamTypeTemplateParam () const
 Get the pointer to CTypeTemplateParam if this is a template parameter type.
bool isQualified () const
 Check if this is a qualified type.
bool isPointer () const
 Check if this is a pointer type.
bool isPointerOrArray () const
 Check if this is a pointer or array type.
bool isAddress () const
 Check if this is a reference type.
bool isRecord () const
 Check if this is a class or union type.
bool isClass () const
 Check if this is a class type.
bool isUnion () const
 Check if this is a union type.
bool isArray () const
 Check if this is an array type.
bool isFixedArray () const
 Check if this is a fixed length array type.
bool isVarArray () const
 Check if this is a variable length type.
bool isArithmetic () const
 Check if this is an arithmetic type.
bool isScalar () const
 Check if this is a pointer or arithmetic type.
bool isAggregate () const
 Check if this is an array, class, or union type.
bool isInteger () const
 Check if this is an integer type.
bool isVoid () const
 Check if this is type void.
bool isEnum () const
 Check if this is an enumeration type.
bool isReal () const
 Check if this is a floating point type.
bool isMemberPointer () const
 Check if this is a member pointer type.
bool isUndefined () const
 Check if this is an undefined type.
bool isFunction () const
 Check if this is a function type.
bool isBitField () const
 Check if this is a bit-field type.
bool isMethod () const
 Check if this is a class member function type.
bool isStdFunction () const
 Check if this is a non-class-member function type.
bool isTemplate () const
 Check if this is a template type.
bool isTemplateInstance () const
 Check if this is a template instance type.
bool isTemplateParam () const
 Check if this is a template parameter type.
bool isTypeParam () const
 Check if this is a type template parameter type.
bool isNonTypeParam () const
 Check if this is a non-type template parameter type.
bool isObject (unsigned long pos=0) const
 Check if this is an object type.
bool is_bool () const
 Check if the ID of this type is CTypeInfo::TYPE_BOOL.
bool is_char () const
 Check if the ID of this type is CTypeInfo::TYPE_CHAR.
bool is_wchar_t () const
 Check if the ID of this type is CTypeInfo::TYPE_WCHAR_T.
bool is_short () const
 Check if the ID of this type is CTypeInfo::TYPE_SHORT.
bool is_int () const
 Check if the ID of this type is CTypeInfo::TYPE_INT.
bool is_long () const
 Check if the ID of this type is CTypeInfo::TYPE_LONG.
bool is_long_long () const
 Check if the ID of this type is CTypeInfo::TYPE_LONG_LONG.
bool is_signed_char () const
 Check if the ID of this type is CTypeInfo::TYPE_SIGNED_CHAR.
bool is_unsigned_char () const
 Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_CHAR.
bool is_unsigned_short () const
 Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_SHORT.
bool is_unsigned_int () const
 Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_INT.
bool is_unsigned_long () const
 Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_LONG.
bool is_unsigned_long_long () const
 Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_LONG_LONG.
bool is_float () const
 Check if the ID of this type is CTypeInfo::TYPE_FLOAT.
bool is_double () const
 Check if the ID of this type is CTypeInfo::TYPE_DOUBLE.
bool is_long_double () const
 Check if the ID of this type is CTypeInfo::TYPE_LONG_DOUBLE.
bool is_void () const
 Check if the ID of this type is CTypeInfo::TYPE_VOID.
bool is_undefined () const
 Check if the ID of this type is CTypeInfo::TYPE_UNDEFINED.
bool is_unknown_t () const
 Check if the ID of this type is CTypeInfo::TYPE_UNKNOWN_T.
bool is_ellipsis () const
 Check if the ID of this type is CTypeInfo::TYPE_ELLIPSIS.
bool is_signed () const
 Check if this is a signed integer type.
bool is_unsigned () const
 Check if this is an unsigned integer type.
unsigned conv_rank () const
 Get the arithmetic conversion rank of the type.
bool operator> (const CTypeInfo &type) const
 Check if the conversion rank of this type is greater than the conversion rank of the given type.
bool operator>= (const CTypeInfo &type) const
 Check if the conversion rank of this type equals or is greater than the conversion rank of the given type.
bool operator<= (const CTypeInfo &type) const
 Check if the conversion rank of this type equals or is greater than the conversion rank of the given type.
bool operator< (const CTypeInfo &type) const
 Check if the conversion rank of this type is less than the conversion rank of the given type.
unsigned rank () const
 Get the rank of this type if it is an arithmetic type.
CTypeInfoDuplicate () const
 Maka a duplicate of this type.
void Mangled (ostream &os) const
 Print the mangled textual representation of the type on the given stream.

Static Public Member Functions

static CTypeInfoDuplicate (const CTypeInfo *type)
 Make a duplicate of the given type.
static void Destroy (CTypeInfo *type)
 Destroy the given type.

Static Public Attributes

static CTypeInfoCTYPE_SIZE_T
 Internal representation of size_t.
static CTypeInfoCTYPE_PTRDIFF_T
 Internal representation of ptrdiff_t.

Member Enumeration Documentation

Type identifiers.

Enumerator:
TYPE_BOOL  bool
TYPE_SIGNED_CHAR  signed char
TYPE_UNSIGNED_CHAR  unsiged char
TYPE_CHAR  char
TYPE_UNSIGNED_SHORT  unsigned short
TYPE_SHORT  short
TYPE_UNSIGNED_INT  unsigned int
TYPE_WCHAR_T  wchar_t
TYPE_INT  int
TYPE_UNSIGNED_LONG  unsigned long
TYPE_LONG  long
TYPE_UNSIGNED_LONG_LONG  unsigned long long
TYPE_LONG_LONG  long long
TYPE_FLOAT  float
TYPE_DOUBLE  double
TYPE_LONG_DOUBLE  long double
TYPE_VOID  void
TYPE_UNDEFINED  Undefined type.

TYPE_UNKNOWN_T  unknown_t
TYPE_ELLIPSIS  Any type.

TYPE_CLASS  Class type.

TYPE_UNION  Union type.

TYPE_ENUM  Enumeration type.

TYPE_POINTER  Pointer type.

TYPE_ADDRESS  Reference type.

TYPE_MEMBER_POINTER  Member pointer type.

TYPE_FUNCTION  Function type.

TYPE_ARRAY  Array type.

TYPE_VAR_ARRAY  Variable length array type.

TYPE_QUALIFIED  Qualified type.

TYPE_BIT_FIELD  Bitfield type.

TYPE_TEMPLATE_PARAM  Template parameter type.

TYPE_EMPTY  No type.


Constructor & Destructor Documentation

Puma::CTypeInfo::CTypeInfo ( CTypeInfo base,
CTypeInfo::TypeId  id 
) [inline]

Constructor.

Parameters:
base The base type of a compound type.
id The type ID.

Puma::CTypeInfo::~CTypeInfo (  )  [inline]

Destructor.


Member Function Documentation

bool Puma::CTypeInfo::operator== ( const CTypeInfo type  )  const

Check if this type equals the given type.

Parameters:
type The type to compare with.

bool Puma::CTypeInfo::operator!= ( const CTypeInfo type  )  const [inline]

Check if this type not equals the given type.

Parameters:
type The type to compare with.

void Puma::CTypeInfo::print ( ostream &  os  )  const [inline, virtual]

Print the textual representation of this type on the given stream.

Parameters:
os The output stream.

Implements Puma::Printable.

void Puma::CTypeInfo::TypeText ( ostream &  os,
const char *  name = (const char*)0,
bool  abs = false,
bool  tdef = false,
bool  elaborated_type_spec = false 
) const [inline]

Print the textual representation of this type on the given stream.

Parameters:
os The output stream.
name Optional name of the entity to print.
abs Print qualified names with root qualifier.
tdef Print the name of a typedef instead of the underlying type.
elaborated_type_spec Print elaborated type specifier before class, union, and enumeration types.

long int Puma::CTypeInfo::Dimension (  )  const [inline]

Get the dimension of an array type.

Reimplemented in Puma::CTypeArray, and Puma::CTypeBitField.

long int Puma::CTypeInfo::Size (  )  const

Get the size in bits of a type.

long int Puma::CTypeInfo::Align (  )  const

Get the alignment of a type.

CTypeInfo::TypeId Puma::CTypeInfo::Id (  )  const [inline]

Get the type identifier.

CTypeInfo * Puma::CTypeInfo::BaseType (  )  const [inline]

Get the base type of a compound type.

Returns:
The base type or this if not a compound type.

void Puma::CTypeInfo::BaseType ( CTypeInfo base  )  [inline]

Set the base type of a compount type.

Parameters:
base The base type.

bool Puma::CTypeInfo::isTypedef (  )  const [inline]

Check if this is a typedef type.

CObjectInfo * Puma::CTypeInfo::TypedefInfo (  )  const [inline]

Get the typedef information if this is a typedef type.

CTypeInfo* Puma::CTypeInfo::TypedefInfo ( CObjectInfo  ) 

Set the typedef information if this is a typedef type.

bool Puma::CTypeInfo::isComplete ( unsigned long  pos = 0  )  const

Check if this is a complete type.

Optionally limited to a specific source code position. A type is complete if it is not undefined, not void, not an fixed length array without dimension, and not a class or enumeration that is only declared but not defined.

Parameters:
pos Optional source code position.

Reimplemented in Puma::CTypeEnum, and Puma::CTypeRecord.

bool Puma::CTypeInfo::isDependent ( bool  consider_unknown_t = true  )  const

Check if this type or one of its base types depends on a template parameter.

Parameters:
consider_unknown_t Consider unknown_t as dependent.

bool Puma::CTypeInfo::isConst (  )  const [inline]

Check if this type is const qualified.

Reimplemented in Puma::CTypeQualified.

bool Puma::CTypeInfo::isVolatile (  )  const [inline]

Check if this type is volatile qualified.

Reimplemented in Puma::CTypeQualified.

bool Puma::CTypeInfo::isRestrict (  )  const [inline]

Check if this type is restrict qualified.

Reimplemented in Puma::CTypeQualified.

CRecord * Puma::CTypeInfo::Record (  )  const [inline]

Get the class or union of a class or union type.

Returns:
The class or union, or NULL if not such a type.

Reimplemented in Puma::CTypeFunction, Puma::CTypeMemberPointer, and Puma::CTypeRecord.

CClassInfo* Puma::CTypeInfo::ClassInfo (  )  const

Get the class information if this is a class type.

Returns:
The class information or NULL if not a class type.

Reimplemented in Puma::CTypeClass.

CUnionInfo* Puma::CTypeInfo::UnionInfo (  )  const

Get the union information if this is a union type.

Returns:
The union information or NULL if not a union type.

Reimplemented in Puma::CTypeUnion.

CEnumInfo * Puma::CTypeInfo::EnumInfo (  )  const [inline]

Get the enumeration information if this is an enumeration type.

Returns:
The enumeration information or NULL if not an enumeration type.

Reimplemented in Puma::CTypeEnum.

CFunctionInfo * Puma::CTypeInfo::FunctionInfo (  )  const [inline]

Get the function information if this is a function type.

Returns:
The function information or NULL if not a function type.

Reimplemented in Puma::CTypeFunction.

CTypeInfo * Puma::CTypeInfo::PtrBaseType (  )  const [inline]

Get the base type of a pointer type.

CTypeList * Puma::CTypeInfo::ArgTypes (  )  const [inline]

Get the argument type list of a function or qualified type.

Reimplemented in Puma::CTypeFunction.

CTypeInfo * Puma::CTypeInfo::VirtualType (  )  const [inline]

Get the virtual type of this type.

If this type is a qualified, bit-field, or reference type then the virtual type is the virtual type of the base type of this type.

Returns:
The base type or this.

CTypeInfo * Puma::CTypeInfo::UnqualType (  )  const [inline]

Get the unqualified version of this type.

Returns:
The unqualified type or this if not qualified.

CTypeFunction* Puma::CTypeInfo::PtrToFct (  )  const

Get the function type of a pointer-to-function type.

Returns:
The function type or NULL if not a pointer to function.

CTypeArray* Puma::CTypeInfo::PtrToArray (  )  const

Get the array type of a pointer-to-array type.

Returns:
The array type or NULL if not a pointer to array.

CTypeQualified * Puma::CTypeInfo::TypeQualified (  )  const [inline]

Get the pointer to CTypeQualified if this is a qualified type.

Returns:
The valid pointer or NULL.

CTypeFunction * Puma::CTypeInfo::TypeFunction (  )  const [inline]

Get the pointer to CTypeFunction if this is a function type.

Returns:
The valid pointer or NULL.

CTypeBitField * Puma::CTypeInfo::TypeBitField (  )  const [inline]

Get the pointer to CTypeBitField if this is a bit-field type.

Returns:
The valid pointer or NULL.

CTypePointer * Puma::CTypeInfo::TypePointer (  )  const [inline]

Get the pointer to CTypePointer if this is a pointer type.

Returns:
The valid pointer or NULL.

CTypeMemberPointer * Puma::CTypeInfo::TypeMemberPointer (  )  const [inline]

Get the pointer to CTypeMemberPointer if this is a member pointer type.

Returns:
The valid pointer or NULL.

CTypeAddress * Puma::CTypeInfo::TypeAddress (  )  const [inline]

Get the pointer to CTypeAddress if this is a reference type.

Returns:
The valid pointer or NULL.

CTypeArray * Puma::CTypeInfo::TypeArray (  )  const [inline]

Get the pointer to CTypeArray if this is an array type.

Returns:
The valid pointer or NULL.

CTypeVarArray * Puma::CTypeInfo::TypeVarArray (  )  const [inline]

Get the pointer to CTypeVarArray if this is a variable length array type.

Returns:
The valid pointer or NULL.

CTypeClass * Puma::CTypeInfo::TypeClass (  )  const [inline]

Get the pointer to CTypeClass if this is a class type.

Returns:
The valid pointer or NULL.

CTypeUnion * Puma::CTypeInfo::TypeUnion (  )  const [inline]

Get the pointer to CTypeUnion if this is a union type.

Returns:
The valid pointer or NULL.

CTypeRecord * Puma::CTypeInfo::TypeRecord (  )  const [inline]

Get the pointer to CTypeRecord if this is a class or union type.

Returns:
The valid pointer or NULL.

CTypeEnum * Puma::CTypeInfo::TypeEnum (  )  const [inline]

Get the pointer to CTypeEnum if this is an enumeration type.

Returns:
The valid pointer or NULL.

CTypePrimitive * Puma::CTypeInfo::TypePrimitive (  )  const [inline]

Get the pointer to CTypePrimitive if this is a primitive type.

Returns:
The valid pointer or NULL.

CTypeInfo * Puma::CTypeInfo::TypeEmpty (  )  const [inline]

Get the pointer to CTypeInfo if this is type Puma::CTYPE_EMPTY.

Returns:
The valid pointer or NULL.

CTypeTemplateParam * Puma::CTypeInfo::TypeTemplateParam (  )  const [inline]

Get the pointer to CTypeTemplateParam if this is a template parameter type.

Returns:
The valid pointer or NULL.

bool Puma::CTypeInfo::isQualified (  )  const [inline]

Check if this is a qualified type.

bool Puma::CTypeInfo::isPointer (  )  const [inline]

Check if this is a pointer type.

bool Puma::CTypeInfo::isPointerOrArray (  )  const [inline]

Check if this is a pointer or array type.

bool Puma::CTypeInfo::isAddress (  )  const [inline]

Check if this is a reference type.

bool Puma::CTypeInfo::isRecord (  )  const [inline]

Check if this is a class or union type.

bool Puma::CTypeInfo::isClass (  )  const [inline]

Check if this is a class type.

bool Puma::CTypeInfo::isUnion (  )  const [inline]

Check if this is a union type.

bool Puma::CTypeInfo::isArray (  )  const [inline]

Check if this is an array type.

bool Puma::CTypeInfo::isFixedArray (  )  const [inline]

Check if this is a fixed length array type.

bool Puma::CTypeInfo::isVarArray (  )  const [inline]

Check if this is a variable length type.

bool Puma::CTypeInfo::isArithmetic (  )  const

Check if this is an arithmetic type.

bool Puma::CTypeInfo::isScalar (  )  const [inline]

Check if this is a pointer or arithmetic type.

bool Puma::CTypeInfo::isAggregate (  )  const [inline]

Check if this is an array, class, or union type.

bool Puma::CTypeInfo::isInteger (  )  const [inline]

Check if this is an integer type.

bool Puma::CTypeInfo::isVoid (  )  const [inline]

Check if this is type void.

bool Puma::CTypeInfo::isEnum (  )  const [inline]

Check if this is an enumeration type.

bool Puma::CTypeInfo::isReal (  )  const [inline]

Check if this is a floating point type.

bool Puma::CTypeInfo::isMemberPointer (  )  const [inline]

Check if this is a member pointer type.

bool Puma::CTypeInfo::isUndefined (  )  const [inline]

Check if this is an undefined type.

bool Puma::CTypeInfo::isFunction (  )  const [inline]

Check if this is a function type.

bool Puma::CTypeInfo::isBitField (  )  const [inline]

Check if this is a bit-field type.

bool Puma::CTypeInfo::isMethod (  )  const [inline]

Check if this is a class member function type.

bool Puma::CTypeInfo::isStdFunction (  )  const [inline]

Check if this is a non-class-member function type.

bool Puma::CTypeInfo::isTemplate (  )  const

Check if this is a template type.

bool Puma::CTypeInfo::isTemplateInstance (  )  const

Check if this is a template instance type.

bool Puma::CTypeInfo::isTemplateParam (  )  const [inline]

Check if this is a template parameter type.

bool Puma::CTypeInfo::isTypeParam (  )  const [inline]

Check if this is a type template parameter type.

bool Puma::CTypeInfo::isNonTypeParam (  )  const [inline]

Check if this is a non-type template parameter type.

bool Puma::CTypeInfo::isObject ( unsigned long  pos = 0  )  const [inline]

Check if this is an object type.

An object type is a complete non-function type.

Parameters:
pos Optional source code position.

bool Puma::CTypeInfo::is_bool (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_BOOL.

bool Puma::CTypeInfo::is_char (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_CHAR.

bool Puma::CTypeInfo::is_wchar_t (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_WCHAR_T.

bool Puma::CTypeInfo::is_short (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_SHORT.

bool Puma::CTypeInfo::is_int (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_INT.

bool Puma::CTypeInfo::is_long (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_LONG.

bool Puma::CTypeInfo::is_long_long (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_LONG_LONG.

bool Puma::CTypeInfo::is_signed_char (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_SIGNED_CHAR.

bool Puma::CTypeInfo::is_unsigned_char (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_CHAR.

bool Puma::CTypeInfo::is_unsigned_short (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_SHORT.

bool Puma::CTypeInfo::is_unsigned_int (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_INT.

bool Puma::CTypeInfo::is_unsigned_long (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_LONG.

bool Puma::CTypeInfo::is_unsigned_long_long (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNSIGNED_LONG_LONG.

bool Puma::CTypeInfo::is_float (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_FLOAT.

bool Puma::CTypeInfo::is_double (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_DOUBLE.

bool Puma::CTypeInfo::is_long_double (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_LONG_DOUBLE.

bool Puma::CTypeInfo::is_void (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_VOID.

bool Puma::CTypeInfo::is_undefined (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNDEFINED.

bool Puma::CTypeInfo::is_unknown_t (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_UNKNOWN_T.

bool Puma::CTypeInfo::is_ellipsis (  )  const [inline]

Check if the ID of this type is CTypeInfo::TYPE_ELLIPSIS.

bool Puma::CTypeInfo::is_signed (  )  const

Check if this is a signed integer type.

bool Puma::CTypeInfo::is_unsigned (  )  const

Check if this is an unsigned integer type.

unsigned Puma::CTypeInfo::conv_rank (  )  const

Get the arithmetic conversion rank of the type.

Note:
Language C only!

bool Puma::CTypeInfo::operator> ( const CTypeInfo type  )  const

Check if the conversion rank of this type is greater than the conversion rank of the given type.

Note:
Language C only!
Parameters:
type The type to compare with.

bool Puma::CTypeInfo::operator>= ( const CTypeInfo type  )  const [inline]

Check if the conversion rank of this type equals or is greater than the conversion rank of the given type.

Note:
Language C only!
Parameters:
type The type to compare with.

bool Puma::CTypeInfo::operator<= ( const CTypeInfo type  )  const [inline]

Check if the conversion rank of this type equals or is greater than the conversion rank of the given type.

Note:
Language C only!
Parameters:
type The type to compare with.

bool Puma::CTypeInfo::operator< ( const CTypeInfo type  )  const

Check if the conversion rank of this type is less than the conversion rank of the given type.

Note:
Language C only!
Parameters:
type The type to compare with.

unsigned Puma::CTypeInfo::rank (  )  const

Get the rank of this type if it is an arithmetic type.

Note:
Language C++ only!
Returns:
The rank or 0 if not an arithmetic type.

static CTypeInfo* Puma::CTypeInfo::Duplicate ( const CTypeInfo type  )  [static]

Make a duplicate of the given type.

Parameters:
type The type to duplicate.

CTypeInfo * Puma::CTypeInfo::Duplicate (  )  const [inline]

Maka a duplicate of this type.

static void Puma::CTypeInfo::Destroy ( CTypeInfo type  )  [static]

Destroy the given type.

Parameters:
type The type to destroy.

void Puma::CTypeInfo::Mangled ( ostream &  os  )  const

Print the mangled textual representation of the type on the given stream.

According to the C++ V3 ABI mangling (see http://www.codesourcery.com/cxx-abi/abi.html).

Parameters:
os The output stream.


Member Data Documentation

Internal representation of size_t.

Internal representation of ptrdiff_t.




Puma Reference Manual. Created on 11 Jul 2008.