From 164d595dba8cadbe3b889b6e809aec8a24a8d878 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 9 Sep 2011 12:13:45 +0200 Subject: Add support for ignoring bases in has_a() test --- odb/context.cxx | 9 +++++++++ odb/context.hxx | 2 ++ 2 files changed, 11 insertions(+) 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) { -- cgit v1.1