+ 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.
+
+ This function can only be called once. The global main() function provided
+ by the library normally does it automatically at program startup. */
+ static int run(int, char **, void * =0, void (*)(void *) = 0);