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: type_t
-
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