From 443293aaf09eca7c3b88d621d056c4effee2c248 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 10 May 2012 17:54:18 +0200 Subject: Implement option class inheritance For now multiple, non-virtual inheritance is supported. An option class can now also be declared abstract using the class c = 0 {...}; syntax. New option, --exclude-base, controls whether base class information is present in usage and documentation. --- cli/man.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'cli/man.cxx') diff --git a/cli/man.cxx b/cli/man.cxx index 93c6920..ac5d9b1 100644 --- a/cli/man.cxx +++ b/cli/man.cxx @@ -120,6 +120,9 @@ namespace class_ (context& c) : context (c), option_ (c) { + *this >> inherits_base_ >> base_ >> inherits_base_; + base_ >> names_option_; + names_option_ >> option_; } @@ -137,13 +140,18 @@ namespace return; } + if (!options.exclude_base ()) + inherits (c, inherits_base_); + names (c, names_option_); } private: - bool generated_; option option_; traversal::names names_option_; + + traversal::class_ base_; + traversal::inherits inherits_base_; }; } -- cgit v1.1