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.
|