diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-09-09 12:13:45 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-09-09 12:13:45 +0200 |
commit | 164d595dba8cadbe3b889b6e809aec8a24a8d878 (patch) | |
tree | 757da18af45a7d40caf4e228249dfc025143d1a5 | |
parent | 6d4167d63b657aae2f4d57225eda37fb3c03291f (diff) |
Add support for ignoring bases in has_a() test
-rw-r--r-- | odb/context.cxx | 9 | ||||
-rw-r--r-- | odb/context.hxx | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/odb/context.cxx b/odb/context.cxx index 56b9ab0..03f0308 100644 --- a/odb/context.cxx +++ b/odb/context.cxx @@ -971,6 +971,15 @@ namespace "value"); } + virtual void + traverse_object (semantics::class_& c) + { + if ((flags_ & context::exclude_base) == 0) + inherits (c); + + names (c); + } + private: bool r_; unsigned short flags_; diff --git a/odb/context.hxx b/odb/context.hxx index e00ec4e..cb8e2ef 100644 --- a/odb/context.hxx +++ b/odb/context.hxx @@ -385,6 +385,8 @@ public: static unsigned short const test_straight_container = 0x10; static unsigned short const test_inverse_container = 0x20; + static unsigned short const exclude_base = 0x8000; + bool is_a (semantics::data_member& m, unsigned short flags) { |