online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <functional> #include <iostream> #include <thread> class Context { private: std::thread thread; bool running; void run() { while (running) { if (function != nullptr) { function(); function = nullptr; } } } //void (*function)(); std::function<void ()> function; public: Context() : running(true) { thread = std::thread(&Context::run, this); } ~Context() { running = false; thread.join(); } template <typename T, typename... Args> void call(T function, Args... args) { this->function = std::bind(function, args...); function(args...); } }; // Here are some test functions void f1() { std::cout << "f1" << std::endl; } void f2(int a) { std::cout << "f2(" << a << ")" << std::endl; } void f3(int a, int b) { std::cout << "f3(" << a << ", " << b << ")" << std::endl; } int main() { Context context; context.call(f1); context.call(f2, 1); context.call(f3, 1, 2); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue