]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/getopt.h
Make sure all classes have sensible copy semantics
[libs/core.git] / source / core / getopt.h
index 411515f5dd9c1d837e47131ca3c2ee1d08f21e91..8d78a728169a74e2b5715fce27ee63bccd100cc0 100644 (file)
@@ -6,6 +6,7 @@
 #include <string>
 #include <vector>
 #include <msp/strings/lexicalcast.h>
+#include "noncopyable.h"
 
 namespace Msp {
 
@@ -58,7 +59,7 @@ A built-in --help option is provided and will output a list of options,
 arguments and their associated help texts.  An application may override this by
 providing its own option with the same name.
 */
-class GetOpt
+class GetOpt: private NonCopyable
 {
 public:
        enum ArgType
@@ -272,8 +273,10 @@ private:
        unsigned process_short(const char *const *);
 
 public:
-       /** Generates a single line that describes known options and arguments. */
-       std::string generate_usage(const std::string &) const;
+       /** Generates a single line that describes known options and arguments.  If
+       compact is true, the options list is replaced with a placeholder.  This
+       provides cleaner output if full help text is printed. */
+       std::string generate_usage(const std::string &, bool compact = false) const;
 
        /** Generates help for known options and arguments in tabular format, one
        item per line.  The returned string will have a linefeed at the end. */