48 template<
class main_function_t>
49 static int safe_run(main_function_t main_function) {
50 return internal_safe_run(main_function, std::nullopt, std::nullopt);
73 template<
class main_function_t>
74 static int safe_run(main_function_t main_function,
int argc,
char* argv[]) {
75 return internal_safe_run(main_function, argc, argv);
80 static int safe_run(xtd::delegate<
void()> main_function,
int argc,
char* argv[]);
81 static int safe_run(xtd::delegate<
void()> main_function);
82 static int safe_run(xtd::delegate<
void(
int,
char* [])> main_function,
int argc,
char* argv[]);
83 static int safe_run(xtd::delegate<
void(
int,
char* [])> main_function);
86 static int safe_run(xtd::delegate<
int()> main_function,
int argc,
char* argv[]);
87 static int safe_run(xtd::delegate<
int()> main_function);
88 static int safe_run(xtd::delegate<
int(
int,
char* [])> main_function,
int argc,
char* argv[]);
89 static int safe_run(xtd::delegate<
int(
int,
char* [])> main_function);
119 static int safe_run(
void (*main_function)(
int,
char* []),
int argc,
char* argv[]);
120 static int safe_run(
void (*main_function)(
int,
char* []));
123 static int safe_run(
int (*main_function)(
int,
char* []),
int argc,
char* argv[]);
124 static int safe_run(
int (*main_function)(
int,
char* []));
156 template<
class main_function_t>
157 static int internal_safe_run(main_function_t main_function, std::optional<int> argc, std::optional<char**> argv) {
160 auto exit_code = argc == std::nullopt && argv == std::nullopt ? run(main_function) : run(main_function, argc.value(), argv.value());
163 }
catch (
const std::exception& e) {
164 __show_generic_exception_message__(e);
168 __show_generic_exception_message__();
173 static void init_safe_run();
175 static void end_safe_run();
177 static int run(xtd::delegate<
void()> main_function,
int argc,
char* argv[]);
178 static int run(xtd::delegate<
void()> main_function);
179 static int run(xtd::delegate<
void(
int,
char* [])> main_function,
int argc,
char* argv[]);
180 static int run(xtd::delegate<
void(
int,
char* [])> main_function);
183 static int run(xtd::delegate<
int()> main_function,
int argc,
char* argv[]);
184 static int run(xtd::delegate<
int()> main_function);
185 static int run(xtd::delegate<
int(
int,
char* [])> main_function,
int argc,
char* argv[]);
186 static int run(xtd::delegate<
int(
int,
char* [])> main_function);
190 static int run(xtd::delegate<xtd::threading::tasks::task<>()> main_function,
int argc,
char* argv[]);
191 static int run(xtd::delegate<xtd::threading::tasks::task<>()> main_function);
192 static int run(xtd::delegate<xtd::threading::tasks::task<>(
int,
char* [])> main_function,
int argc,
char* argv[]);
193 static int run(xtd::delegate<xtd::threading::tasks::task<>(
int,
char* [])> main_function);
194 static int run(xtd::delegate<xtd::threading::tasks::task<>(
const xtd::argument_collection&)> main_function,
int argc,
char* argv[]);
196 static int run(xtd::delegate<xtd::threading::tasks::task<int>()> main_function,
int argc,
char* argv[]);
197 static int run(xtd::delegate<xtd::threading::tasks::task<int>()> main_function);
198 static int run(xtd::delegate<xtd::threading::tasks::task<int>(
int,
char* [])> main_function,
int argc,
char* argv[]);
199 static int run(xtd::delegate<xtd::threading::tasks::task<int>(
int,
char* [])> main_function);
200 static int run(xtd::delegate<xtd::threading::tasks::task<int>(
const xtd::argument_collection&)> main_function,
int argc,
char* argv[]);
203 static int run(xtd::delegate<xtd::threading::tasks::wtask<>()> main_function,
int argc,
char* argv[]);
204 static int run(xtd::delegate<xtd::threading::tasks::wtask<>()> main_function);
205 static int run(xtd::delegate<xtd::threading::tasks::wtask<>(
int,
char* [])> main_function,
int argc,
char* argv[]);
206 static int run(xtd::delegate<xtd::threading::tasks::wtask<>(
int,
char* [])> main_function);
207 static int run(xtd::delegate<xtd::threading::tasks::wtask<>(
const xtd::argument_collection&)> main_function,
int argc,
char* argv[]);
209 static int run(xtd::delegate<xtd::threading::tasks::wtask<int>()> main_function,
int argc,
char* argv[]);
210 static int run(xtd::delegate<xtd::threading::tasks::wtask<int>()> main_function);
211 static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(
int,
char* [])> main_function,
int argc,
char* argv[]);
212 static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(
int,
char* [])> main_function);
213 static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(
const xtd::argument_collection&)> main_function,
int argc,
char* argv[]);
216 static int run(
void (*main_function)(),
int argc,
char* argv[]);
217 static int run(
void (*main_function)());
218 static int run(
void (*main_function)(
int,
char* []),
int argc,
char* argv[]);
219 static int run(
void (*main_function)(
int,
char* []));
222 static int run(
int (*main_function)(),
int argc,
char* argv[]);
223 static int run(
int (*main_function)());
224 static int run(
int (*main_function)(
int,
char* []),
int argc,
char* argv[]);
225 static int run(
int (*main_function)(
int,
char* []));
229 static int run(xtd::threading::tasks::task<> (*main_function)(),
int argc,
char* argv[]);
230 static int run(xtd::threading::tasks::task<> (*main_function)());
231 static int run(xtd::threading::tasks::task<> (*main_function)(
int,
char* []),
int argc,
char* argv[]);
232 static int run(xtd::threading::tasks::task<> (*main_function)(
int,
char* []));
233 static int run(xtd::threading::tasks::task<> (*main_function)(
const xtd::argument_collection&),
int argc,
char* argv[]);
235 static int run(xtd::threading::tasks::task<int> (*main_function)(),
int argc,
char* argv[]);
236 static int run(xtd::threading::tasks::task<int> (*main_function)());
237 static int run(xtd::threading::tasks::task<int> (*main_function)(
int,
char* []),
int argc,
char* argv[]);
238 static int run(xtd::threading::tasks::task<int> (*main_function)(
int,
char* []));
239 static int run(xtd::threading::tasks::task<int> (*main_function)(
const xtd::argument_collection&),
int argc,
char* argv[]);
242 static int run(xtd::threading::tasks::wtask<> (*main_function)(),
int argc,
char* argv[]);
243 static int run(xtd::threading::tasks::wtask<> (*main_function)());
244 static int run(xtd::threading::tasks::wtask<> (*main_function)(
int,
char* []),
int argc,
char* argv[]);
245 static int run(xtd::threading::tasks::wtask<> (*main_function)(
int,
char* []));
246 static int run(xtd::threading::tasks::wtask<> (*main_function)(
const xtd::argument_collection&),
int argc,
char* argv[]);
248 static int run(xtd::threading::tasks::wtask<int> (*main_function)(),
int argc,
char* argv[]);
249 static int run(xtd::threading::tasks::wtask<int> (*main_function)());
250 static int run(xtd::threading::tasks::wtask<int> (*main_function)(
int,
char* []),
int argc,
char* argv[]);
251 static int run(xtd::threading::tasks::wtask<int> (*main_function)(
int,
char* []));
252 static int run(xtd::threading::tasks::wtask<int> (*main_function)(
const xtd::argument_collection&),
int argc,
char* argv[]);
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.hpp:74
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8