- static int run(int, char **, void * =0);
- static void *get_data() { return data_; }
+ /** 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 * = nullptr, void (*)(void *) = nullptr);
+
+ /** Sets application startup info, including argv[0] value and platform-
+ specific data.
+
+ This function can only be called once, and is normally called by
+ Application::run(). */
+ static void set_startup_info(const char *, void *);
+
+ static void *get_data() { return _data; }
+ static const char *get_argv0() { return _argv0; }
+ static const std::string &get_name() { return _name; }