aboutsummaryrefslogtreecommitdiff
path: root/examples/cxx/serializer/polyroot/supermen-simpl-mixin.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'examples/cxx/serializer/polyroot/supermen-simpl-mixin.hxx')
-rw-r--r--examples/cxx/serializer/polyroot/supermen-simpl-mixin.hxx35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/cxx/serializer/polyroot/supermen-simpl-mixin.hxx b/examples/cxx/serializer/polyroot/supermen-simpl-mixin.hxx
new file mode 100644
index 0000000..9f9f37c
--- /dev/null
+++ b/examples/cxx/serializer/polyroot/supermen-simpl-mixin.hxx
@@ -0,0 +1,35 @@
+// file : examples/cxx/serializer/polyroot/library-simpl-mixin.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : not copyrighted - public domain
+
+#ifndef SUPERMEN_SIMPL_HXX
+#define SUPERMEN_SIMPL_HXX
+
+#include "supermen.hxx"
+#include "supermen-sskel.hxx"
+
+struct person_simpl: virtual person_sskel
+{
+ virtual void
+ pre (const person&);
+
+ virtual std::string
+ name ();
+
+protected:
+ const person* person_;
+};
+
+struct superman_simpl: virtual superman_sskel, person_simpl
+{
+ virtual bool
+ can_fly ();
+};
+
+struct batman_simpl: virtual batman_sskel, superman_simpl
+{
+ virtual unsigned int
+ wing_span ();
+};
+
+#endif // SUPERMEN_SIMPL_HXX