summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--odb/context.cxx9
-rw-r--r--odb/context.hxx2
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)
{