X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/graphlib.git/blobdiff_plain/4af38e188dc46580861b52705a44def9745e0741..aac6618f514234489b49d3baec9c33bbf86a20cc:/MainDrawingThread.h diff --git a/MainDrawingThread.h b/MainDrawingThread.h index 88d22b2..fea59b3 100644 --- a/MainDrawingThread.h +++ b/MainDrawingThread.h @@ -4,14 +4,35 @@ #include class MainDrawingThread: public DrawingThreadCore { -public: - MainDrawingThread(int argc, char **argv); - ~MainDrawingThread(); +private: + int argc; + char **argv; + + template + static int mainWrapper(int, char **) + { + return f(); + } + + template + static int mainWrapper(int argc, char **argv) + { + return f(argc, argv); + } + + static int (*main)(int, char **); int runForReal(); - int runForReal(int argc, char **argv); + +public: + MainDrawingThread(int argc_, char **argv_); + }; -#define main_thread MainDrawingThread::runForReal +#define main_thread(...) \ + /* int */ main_thread(__VA_ARGS__); \ + int (*MainDrawingThread::main)(int, char **) = \ + MainDrawingThread::mainWrapper; \ + int main_thread(__VA_ARGS__) #endif // !MAIN_DRAWING_THREAD_H