pygccxml.declarations.type_traits_classes module

class_declaration_traits = <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>

implements functionality, needed for convenient work with C++ class declarations

class_traits = <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>

implements functionality, needed for convenient work with C++ classes

class declaration_xxx_traits(declaration_class)

Bases: object

this class implements the functionality needed for convenient work with declaration classes

Implemented functionality:
  • find out whether a declaration is a desired one
  • get reference to the declaration
get_declaration(type_)

returns reference to the declaration

Precondition: self.is_my_case( type ) == True

is_my_case(type_)

returns True, if type represents the desired declaration, False otherwise

enum_declaration = <bound method declaration_xxx_traits.get_declaration of <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>>

returns reference to enum declaration

enum_traits = <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>

implements functionality, needed for convenient work with C++ enums

find_copy_constructor(type_)

Returns reference to copy constructor.

Parameters:type (declarations.class_t) – the class to be searched.
Returns:the copy constructor
Return type:declarations.constructor_t
find_noncopyable_vars(class_type, already_visited_cls_vars=None)

Returns list of all noncopyable variables.

If an already_visited_cls_vars list is provided as argument, the returned list will not contain these variables. This list will be extended with whatever variables pointing to classes have been found.

Parameters:
  • class_type (declarations.class_t) – the class to be searched.
  • already_visited_cls_vars (list) – optional list of vars that should not be checked a second time, to prevent infinite recursions.
Returns:

list of all noncopyable variables.

Return type:

list

find_trivial_constructor(type_)

Returns reference to trivial constructor.

Parameters:type (declarations.class_t) – the class to be searched.
Returns:the trivial constructor
Return type:declarations.constructor_t
has_any_non_copyconstructor(decl_type)

if class has any public constructor, which is not copy constructor, this function will return list of them, otherwise None

has_copy_constructor(class_)

if class has public copy constructor, this function will return reference to it, None otherwise

has_destructor(class_)

if class has destructor, this function will return reference to it, None otherwise

has_public_assign(class_)

returns True, if class has public assign operator, False otherwise

has_public_constructor(class_)

if class has any public constructor, this function will return list of them, otherwise None

has_public_destructor(decl_type)

returns True, if class has public destructor, False otherwise

has_trivial_constructor(class_)

if class has public trivial constructor, this function will return reference to it, None otherwise

has_vtable(decl_type)

True, if class has virtual table, False otherwise

is_base_and_derived(based, derived)

returns True, if there is “base and derived” relationship between classes, False otherwise

is_binary_operator(oper)

returns True, if operator is binary operator, otherwise False

is_class = <bound method declaration_xxx_traits.is_my_case of <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>>

returns True, if type represents C++ class definition, False otherwise

is_class_declaration = <bound method declaration_xxx_traits.is_my_case of <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>>

returns True, if type represents C++ class declaration, False otherwise

is_convertible(source, target)

returns True, if source could be converted to target, otherwise False

is_copy_constructor(constructor)

Check if the declaration is a copy constructor,

Parameters:constructor (declarations.constructor_t) – the constructor to be checked.
Returns:True if this is a copy constructor, False instead.
Return type:bool
is_enum = <bound method declaration_xxx_traits.is_my_case of <pygccxml.declarations.type_traits_classes.declaration_xxx_traits object>>

returns True, if type represents C++ enumeration declaration, False otherwise

is_noncopyable(class_, already_visited_cls_vars=None)

Checks if class is non copyable

Parameters:
  • class (declarations.class_t) – the class to be checked
  • already_visited_cls_vars (list) – optional list of vars that should not be checked a second time, to prevent infinite recursions. In general you can ignore this argument, it is mainly used during recursive calls of is_noncopyable() done by pygccxml.
Returns:

if the class is non copyable

Return type:

bool

is_struct(declaration)

Returns True if declaration represents a C++ struct

Parameters:declaration (declaration_t) – the declaration to be checked.
Returns:True if declaration represents a C++ struct
Return type:bool
is_trivial_constructor(constructor)

Check if the declaration is a trivial constructor.

Parameters:constructor (declarations.constructor_t) – the constructor to be checked.
Returns:True if this is a trivial constructor, False instead.
Return type:bool
is_unary_operator(oper)

returns True, if operator is unary operator, otherwise False

is_union(declaration)

Returns True if declaration represents a C++ union

Parameters:declaration (declaration_t) – the declaration to be checked.
Returns:True if declaration represents a C++ union
Return type:bool