pygccxml.declarations.type_traits module¶
defines few algorithms, that deals with different C++ type properties
Are you aware of boost::type_traits library? pygccxml implements the same functionality.
This module contains a set of very specific traits functionsclasses, each of which encapsulate a single trait from the C++ type system. For example: * is a type a pointer or a reference type ? * does a type have a trivial constructor ? * does a type have a const-qualifier ?
- array_item_type(type_)¶
returns array item type
- array_size(type_)¶
returns array size
- base_type(type_)¶
returns base type.
For const int will return int
- decompose_class(type_)¶
implementation details
- decompose_type(tp)¶
Implementation detail
- does_match_definition(given, main, secondary)¶
implementation details
- is_arithmetic(type_)¶
returns True, if type represents C++ integral or floating point type, False otherwise
- is_array(type_)¶
returns True, if type represents C++ array type, False otherwise
- is_bool(type_)¶
Check if type is of boolean type.
- Parameters
type (type_t) – The type to be checked
- Returns
True if type is a boolean, False otherwise.
- Return type
bool
- is_calldef_pointer(type_)¶
returns True, if type represents pointer to free/member function, False otherwise
- is_const(type_)¶
returns True, if type represents C++ const type, False otherwise
- is_elaborated(type_)¶
returns True, if type represents C++ elaborated type, False otherwise
- is_floating_point(type_)¶
returns True, if type represents C++ floating point type, False otherwise
- is_fundamental(type_)¶
returns True, if type represents C++ fundamental type
- is_integral(type_)¶
Check if type is a C++ integral type
- Parameters
type (type_t) – The type to be checked
- Returns
True if type is a C++ integral type, False otherwise.
- Return type
bool
- is_pointer(type_)¶
returns True, if type represents C++ pointer type, False otherwise
- is_reference(type_)¶
returns True, if type represents C++ reference type, False otherwise
- is_same(type1, type2)¶
returns True, if type1 and type2 are same types
- is_std_ostream(type_)¶
Returns True, if type represents C++ std::ostream, False otherwise.
- is_std_string(type_)¶
Returns True, if type represents C++ std::string, False otherwise.
- is_std_wostream(type_)¶
Returns True, if type represents C++ std::wostream, False otherwise.
- is_std_wstring(type_)¶
Returns True, if type represents C++ std::wstring, False otherwise.
- is_void(type_)¶
Check if type is of void type.
- Parameters
type (type_t) – The type to be checked
- Returns
True if type is void, False otherwise.
- Return type
bool
- is_void_pointer(type_)¶
returns True, if type represents void*, False otherwise
- is_volatile(type_)¶
returns True, if type represents C++ volatile type, False otherwise
- remove_alias(type_)¶
Returns type_t without typedef
- Parameters
type (type_t | declaration_t) – type or declaration
- Returns
the type associated to the inputted declaration
- Return type
- remove_const(type_)¶
removes const from the type definition
If type is not const type, it will be returned as is
- remove_cv(type_)¶
removes const and volatile from the type definition
- remove_declarated(type_)¶
removes type-declaration class-binder
declarated_t
from the type_If type_ is not
declarated_t
, it will be returned as is
- remove_elaborated(type_)¶
removes type-declaration class-binder
elaborated_t
from the type_If type_ is not
elaborated_t
, it will be returned as is
- remove_pointer(type_)¶
removes pointer from the type definition
If type is not pointer type, it will be returned as is.
- remove_reference(type_)¶
removes reference from the type definition
If type is not reference type, it will be returned as is.
- remove_volatile(type_)¶
removes volatile from the type definition
If type is not volatile type, it will be returned as is