online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, C#, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS Code, Compile, Run and Debug online from anywhere in world. *******************************************************************************/ #include <iostream> #include <type_traits> void(*g_callback)(void* context); void* g_ctx; // C-style callback void c_set_callback(void(*callback)(void* context), void* context) { g_callback = callback; } void execute_callback() { g_callback(g_ctx); } // C++ callable parameter template<typename Function> void set_callback(Function&& function) { c_set_callback ([](void* context) { (*reinterpret_cast<typename std::decay<Function>::type*>(context))(); } , reinterpret_cast<void*>(&function) ); } void function() { std::cout << "function called" << std::endl; } struct Functor { void operator()() const { } }; int main() { // function as callable set_callback (function ); execute_callback(); // functor as callable Functor functor; set_callback (functor ); execute_callback(); // lambda as callable int result = 0; set_callback ([&result]() { result = 1; std::cout << "lambda called" << std::endl; } ); execute_callback(); 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