6 #include "core_export.h" 40 template <
typename main_function_t>
41 static int safe_run(main_function_t main_function) {
42 return internal_safe_run(main_function, std::nullopt, std::nullopt);
65 template <
typename main_function_t>
66 static int safe_run(main_function_t main_function,
int argc,
char* argv[]) {
67 return internal_safe_run(main_function, argc, argv);
71 static int safe_run(xtd::delegate<
void()> main_function,
int argc,
char* argv[]);
72 static int safe_run(xtd::delegate<
void()> main_function);
73 static int safe_run(xtd::delegate<
void(
int,
char* [])> main_function,
int argc,
char* argv[]);
74 static int safe_run(xtd::delegate<
void(
int,
char* [])> main_function);
77 static int safe_run(xtd::delegate<
int()> main_function,
int argc,
char* argv[]);
78 static int safe_run(xtd::delegate<
int()> main_function);
79 static int safe_run(xtd::delegate<
int(
int,
char* [])> main_function,
int argc,
char* argv[]);
80 static int safe_run(xtd::delegate<
int(
int,
char* [])> main_function);
83 static int safe_run(
void (*main_function)(
int,
char* []),
int argc,
char* argv[]);
84 static int safe_run(
void (*main_function)(
int,
char* []));
87 static int safe_run(
int (*main_function)(
int,
char* []),
int argc,
char* argv[]);
88 static int safe_run(
int (*main_function)(
int,
char* []));
94 template <
typename main_function_t>
95 static int internal_safe_run(main_function_t main_function, std::optional<int> argc, std::optional<char**> argv) {
98 auto exit_code = argc == std::nullopt && argv == std::nullopt ? run(main_function) : run(main_function, argc.value(), argv.value());
101 }
catch(
const std::exception&
e) {
102 show_generic_exception_message(e);
104 show_generic_exception_message();
109 static void init_safe_run();
111 static void end_safe_run();
113 static int run(xtd::delegate<
void()> main_function,
int argc,
char* argv[]);
114 static int run(xtd::delegate<
void()> main_function);
115 static int run(
void (*main_function)(),
int argc,
char* argv[]);
116 static int run(
void (*main_function)());
117 static int run(xtd::delegate<
void(
int,
char* [])> main_function,
int argc,
char* argv[]);
118 static int run(xtd::delegate<
void(
int,
char* [])> main_function);
119 static int run(
void (*main_function)(
int,
char* []),
int argc,
char* argv[]);
120 static int run(
void (*main_function)(
int,
char* []));
125 static int run(xtd::delegate<
int()> main_function,
int argc,
char* argv[]);
126 static int run(xtd::delegate<
int()> main_function);
127 static int run(
int (*main_function)(),
int argc,
char* argv[]);
128 static int run(
int (*main_function)());
129 static int run(xtd::delegate<
int(
int,
char* [])> main_function,
int argc,
char* argv[]);
130 static int run(xtd::delegate<
int(
int,
char* [])> main_function);
131 static int run(
int (*main_function)(
int,
char* []),
int argc,
char* argv[]);
132 static int run(
int (*main_function)(
int,
char* []));
138 static void show_generic_exception_message(
const std::exception&
e);
139 static void show_generic_exception_message();
162 #define startup_(main_method) \ 163 auto main(int argc, char* argv[])->int {\ 164 return xtd::startup::safe_run(main_method, argc, argv);\ 166 intptr_t __opaque_sftews__ = 0 // force to end with semicolon 176 #define startup_class_(main_class) \ 177 auto main(int argc, char* argv[])->int {\ 178 return xtd::startup::safe_run(main_class::main, argc, argv);\ 180 intptr_t __opaque_sftews__ = 0 // force to end with semicolon Contains xtd::static_object class.
Defines the xtd::startup object that can be used in the main method to safely call the application's ...
Definition: startup.h:20
Contains xtd::delegate delegate.
#define static_
This keyword is use to represent a static object. A static object can't be instantiated (constructors...
Definition: static.h:37
static int safe_run(main_function_t main_function)
Safely call the specified application's main entry point.
Definition: startup.h:41
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Contains xtd::collections::specialized::string_vector typedef.
std::vector< xtd::ustring > string_vector
Represents a collection of strings.
Definition: string_vector.h:25
static int safe_run(main_function_t main_function, int argc, char *argv[])
Safely call the specified application's main entry point, argc and argv.
Definition: startup.h:66