From: <rom...@us...> - 2008-03-02 19:13:04
|
Revision: 1269 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1269&view=rev Author: roman_yakovenko Date: 2008-03-02 11:13:11 -0800 (Sun, 02 Mar 2008) Log Message: ----------- pure virtual functions should be generated in class-wrapper, even if they are excluded or could not be exposed, otherwise the generated code will not compile Modified Paths: -------------- pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py Modified: pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2008-03-01 19:48:27 UTC (rev 1268) +++ pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2008-03-02 19:13:11 UTC (rev 1269) @@ -430,8 +430,8 @@ all_protected = declarations.access_type_matcher_t( 'protected' ) & all_included all_pure_virtual = declarations.virtuality_type_matcher_t( VIRTUALITY_TYPES.PURE_VIRTUAL ) all_virtual = declarations.virtuality_type_matcher_t( VIRTUALITY_TYPES.VIRTUAL ) \ - & (declarations.access_type_matcher_t( 'public' ) \ - | declarations.access_type_matcher_t( 'protected' )) + & ( declarations.access_type_matcher_t( 'public' ) \ + | declarations.access_type_matcher_t( 'protected' )) all_not_pure_virtual = ~all_pure_virtual query = all_protected | all_pure_virtual @@ -444,8 +444,6 @@ if base.access == ACCESS_TYPES.PRIVATE: continue base_cls = base.related_class - #funcs.extend( base_cls.member_functions( query, recursive=False, allow_empty=True ) ) - #funcs.extend( base_cls.member_operators( relevant_opers & query, recursive=False, allow_empty=True ) ) funcs.extend( base_cls.member_functions( mf_query, recursive=False, allow_empty=True ) ) funcs.extend( base_cls.member_operators( relevant_opers & query, recursive=False, allow_empty=True ) ) @@ -479,7 +477,8 @@ break else: not_reimplemented_funcs.add( f ) - functions = filter( lambda f: not f.ignore and f.exportable + functions = filter( lambda f: ( False == f.ignore and True == f.exportable ) + or all_pure_virtual( f ) , list( not_reimplemented_funcs ) ) functions.sort( cmp=lambda f1, f2: cmp( ( f1.name, f1.location.as_tuple() ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |