def __init__(<EOL>self,<EOL>name=None,<EOL>return_type=None,<EOL>arg_types=None,<EOL>decl_type=None,<EOL>header_dir=None,<EOL>header_file=None):
if None is decl_type:<EOL><INDENT>decl_type = calldef.calldef_t<EOL><DEDENT>declaration_matcher_t.__init__(<EOL>self,<EOL>name=name,<EOL>decl_type=decl_type,<EOL>header_dir=header_dir,<EOL>header_file=header_file)<EOL>self.return_type = return_type<EOL>self.arg_types = arg_types<EOL>
:param return_type: callable return type
:type return_type: string or instance of :class:`type_t` derived class

:type arg_types: list
:param arg_types: list of function argument types. `arg_types` can
                  contain.
                  Any item within the list could be string or instance
                  of :class:`type_t` derived class. If you don't want
                  some argument to participate in match you can put
                  None.

For example:

  .. code-block:: python

     calldef_matcher_t( arg_types=[ 'int &', None ] )

will match all functions that takes 2 arguments, where the first one is
reference to integer and second any