35 lines
1.2 KiB
C++
35 lines
1.2 KiB
C++
#ifndef ILYA_SHARED_HEADER_GENERIC_MACROS
|
|
#define ILYA_SHARED_HEADER_GENERIC_MACROS
|
|
|
|
/*
|
|
#define main(...) \
|
|
main_inner(int argc, char** argv); \
|
|
int main(int argc, char** argv) { \
|
|
try {\
|
|
return main_inner(argc, argv);\
|
|
} catch(const std::exception& e) {\
|
|
std::cerr << "\n\nUncaught exception: " << e.what() << "\n";\
|
|
char *f=0; *f=1;\
|
|
} catch(const std::string& e) {\
|
|
std::cerr << "\n\nUncaught exception: " << e << "\n";\
|
|
char *f=0; *f=1;\
|
|
} catch(const char* e) {\
|
|
std::cerr << "\n\nUncaught exception: " << e << "\n";\
|
|
char *f=0; *f=1;\
|
|
} catch(...) {\
|
|
std::cerr << "\n\nUncaught exception.\n";\
|
|
char *f=0; *f=1;\
|
|
}\
|
|
}\
|
|
int main_inner(int argc, char** argv)
|
|
|
|
#ifndef NO_GENERIC_H_ASSERT
|
|
#ifdef assert
|
|
#undef assert
|
|
#endif
|
|
#define assert(v) if (!(v)) { std::cerr << "\n\nAssertion failed: " << __FILE__ << " : " << __LINE__ << "\n"; char* shared_generic_assert_char_123=nullptr; *shared_generic_assert_char_123=1; throw 0; } (void)0
|
|
#endif
|
|
*/
|
|
|
|
#endif
|