Update of /cvsroot/pygccxml/source/pyplusplus/module_creator
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19454/pyplusplus/module_creator
Modified Files:
creator.py
Log Message:
operator[] is now supported
Index: creator.py
===================================================================
RCS file: /cvsroot/pygccxml/source/pyplusplus/module_creator/creator.py,v
retrieving revision 1.58
retrieving revision 1.59
diff -C2 -d -r1.58 -r1.59
*** creator.py 28 Feb 2006 07:31:33 -0000 1.58
--- creator.py 5 Mar 2006 05:51:30 -0000 1.59
***************
*** 119,127 ****
return True
if isinstance( declaration, declarations.member_operator_t ) \
! and declaration.symbol == '()':
return True
if not code_creators.operator_t.supported.is_supported( declaration ):
#see http://www.boost.org/libs/python/doc/v2/operators.html#introduction
return False
return True
--- 119,130 ----
return True
if isinstance( declaration, declarations.member_operator_t ) \
! and declaration.symbol in ( '()', '[]' ):
return True
if not code_creators.operator_t.supported.is_supported( declaration ):
#see http://www.boost.org/libs/python/doc/v2/operators.html#introduction
return False
+ if isinstance( declaration, declarations.constructor_t ) \
+ and declaration.is_artificial:
+ return False
return True
***************
*** 152,161 ****
or decl.access_type == declarations.ACCESS_TYPES.PUBLIC
, members )
! if declarations.has_destructor( class_decl ) \
! and not declarations.has_public_destructor( class_decl ):
#remove artificial constructors
! members = filter( lambda decl: not isinstance( decl, declarations.constructor_t )
! or not decl.is_artificial
! , members )
members = filter( lambda member: not member.ignore, members )
ordered_members = self._reorder_decls( members )
--- 155,164 ----
or decl.access_type == declarations.ACCESS_TYPES.PUBLIC
, members )
! #-#if declarations.has_destructor( class_decl ) \
! #-# and not declarations.has_public_destructor( class_decl ):
#remove artificial constructors
! members = filter( lambda decl: not isinstance( decl, declarations.constructor_t )
! or not decl.is_artificial
! , members )
members = filter( lambda member: not member.ignore, members )
ordered_members = self._reorder_decls( members )
***************
*** 382,386 ****
return
! if self.__curr_decl.symbol == '()':
self.visit_member_function()
else:
--- 385,389 ----
return
! if self.__curr_decl.symbol in ( '()', '[]' ):
self.visit_member_function()
else:
***************
*** 453,458 ****
#I don't know but sometimes boost.python requieres
#to construct wrapper from wrapped classe
! scons = code_creators.special_constructor_wrapper_t( class_inst=self.__curr_decl )
! wrapper.adopt_creator( scons )
trivial_constr = declarations.find_trivial_constructor(self.__curr_decl)
if trivial_constr and trivial_constr.is_artificial:
--- 456,462 ----
#I don't know but sometimes boost.python requieres
#to construct wrapper from wrapped classe
! if not declarations.is_noncopyable( self.__curr_decl ):
! scons = code_creators.special_constructor_wrapper_t( class_inst=self.__curr_decl )
! wrapper.adopt_creator( scons )
trivial_constr = declarations.find_trivial_constructor(self.__curr_decl)
if trivial_constr and trivial_constr.is_artificial:
|