+ int exit_code;
+
+private:
+ static Starter *starter_;
+ static Application *app_;
+ static const char *argv0_;
+ static std::string name_;
+ static void *data_;
+
+ Application(const Application &);
+ Application &operator=(const Application &);
+protected:
+ Application(const std::string & = std::string());
+public:
+ virtual ~Application() { }
+
+ /** Constructs an instance of the registered application class and runs it.
+ If the application throws a usage_error, a help message is printed. The
+ GetOpt class will throw such exceptions automatically in error conditions.