diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-08-28 07:52:50 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-08-28 07:52:50 +0200 |
commit | c1f534db5d6bc29f9be0e7498e4971c7132d013a (patch) | |
tree | 198aef1cf6a2b84b929fbd54274875448f7e9a2e /odb/context.cxx | |
parent | c4b6357a9908fb05261efa8764e5c8a6d8727b96 (diff) |
Support for added and deleted data member pragmas
Diffstat (limited to 'odb/context.cxx')
-rw-r--r-- | odb/context.cxx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/odb/context.cxx b/odb/context.cxx index a4609df..35433c9 100644 --- a/odb/context.cxx +++ b/odb/context.cxx @@ -2471,6 +2471,12 @@ namespace if (m.count ("polymorphic-ref")) return; + // Ignore added/deleted members if so requested. + // + if (((flags_ & exclude_added) != 0 && added (member_path_)) || + ((flags_ & exclude_deleted) != 0 && deleted (member_path_))) + return; + if (context::is_a (member_path_, member_scope_, flags_)) r_++; @@ -2480,6 +2486,12 @@ namespace virtual void traverse_simple (semantics::data_member&) { + // Ignore added/deleted members if so requested. + // + if (((flags_ & exclude_added) != 0 && added (member_path_)) || + ((flags_ & exclude_deleted) != 0 && deleted (member_path_))) + return; + if (context::is_a (member_path_, member_scope_, flags_)) r_++; } @@ -2487,6 +2499,12 @@ namespace virtual void traverse_container (semantics::data_member&, semantics::type& c) { + // Ignore added/deleted members if so requested. + // + if (((flags_ & exclude_added) != 0 && added (member_path_)) || + ((flags_ & exclude_deleted) != 0 && deleted (member_path_))) + return; + // We don't cross the container boundaries (separate table). // unsigned short f (flags_ & (context::test_container | |