From 4ad81437b15fc6856f9848a1d3e795b1cf78030f Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 10 Dec 2009 10:13:55 +0200 Subject: Get rid of warning in generated code if option class is empty --- cli/context.hxx | 14 ++++++++++++++ cli/source.cxx | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'cli') diff --git a/cli/context.hxx b/cli/context.hxx index 2b0c128..8f9b659 100644 --- a/cli/context.hxx +++ b/cli/context.hxx @@ -113,6 +113,20 @@ private: operator= (context const&); }; +// Checks if scope Y names any of X. +// +template +bool +has (Y& y) +{ + for (semantics::scope::names_iterator i (y.names_begin ()), + e (y.names_end ()); i != e; ++i) + if (i->named ().is_a ()) + return true; + + return false; +} + // Standard namespace traverser. // struct namespace_: traversal::namespace_, context diff --git a/cli/source.cxx b/cli/source.cxx index 1c0b890..61cc1c0 100644 --- a/cli/source.cxx +++ b/cli/source.cxx @@ -350,6 +350,7 @@ namespace traverse (type& c) { string name (escape (c.name ())); + bool ho (has (c)); os << "// " << name << endl << "//" << endl @@ -447,7 +448,7 @@ namespace if (usage) { os << "void " << name << "::" << endl - << "print_usage (::std::ostream& os)" + << "print_usage (::std::ostream&" << (ho ? " os" : "") << ")" << "{"; // Calculate option length. -- cgit v1.1