xtd 0.2.0
startup4.cpp

Shows how to use xtd::startup class.

#include <xtd/console>
#include <xtd/startup>
using namespace xtd;
namespace startup4_example {
class program {
public:
static int main(const argument_collection& args) {
// Write arguments to the console output
for (auto arg : args)
return 42;
}
};
}
auto main() -> int {
return startup::safe_run(startup4_example::program::main);
}
// Is approximately the same as :
//
// auto main() -> int {
// try {
// auto args = xtd::environment::get_command_line_args();
// return startup34example::program::main({args.begin() + 1, args.end()});
// } catch(const std::exception& e) {
// if (dynamic_cast<const xtd::system_exception*>(&e)) xtd::console::write_line(static_cast<const xtd::system_exception&>(e).to_string());
// else xtd::console::write_line(e.what());
// } catch(...) {
// xtd::console::write_line("Unhandled exception: Unknown exception occurred");
// }
// }
// This code produces the following output if one two "three four" five are entered on command line:
//
// one
// two
// three four
// five
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
static int safe_run(main_function_t main_function)
Safely call the specified application's main entry point.
Definition startup.hpp:47
xtd::array< xtd::string > argument_collection
Represents the collection of arguments passed to the main entry point method.
Definition argument_collection.hpp:19
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8