# 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(type_)

  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(type_)

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

is_class_declaration(type_)

  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(type_)

  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