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 <vector> #include <functional> #include <cinttypes> #include <iostream> namespace sf { struct RenderWindow{}; struct VideoMode{ VideoMode(int x, int y){} }; struct Vector2f{ Vector2f(float x, float y){} }; struct ContextSettings{}; typedef uint32_t Uint32; }; struct QueueEventFunction { std::vector<std::function<void()>> v; // stores the functions and arguments // as zero argument lambdas template <typename F,/*template <typename U, typename = std::allocator<U> >*/ typename ...Args> void Enqueue(F f, Args... args) { v.push_back([=] { f(args...); }); // add function and arguments // as zero argument lambdas // that capture the function and arguments } void CallAll() { for (auto f : v) f(); // calls all the functions } }; class Window : public sf::RenderWindow { public: Window(sf::VideoMode window, const std::string& title, sf::Uint32 style = 7U, sf::ContextSettings settings = sf::ContextSettings()) {}; ~Window() {}; template <typename F, typename ...Args> void addQueue(F f, Args...args); void execQueue(); private: QueueEventFunction queue; }; template <typename F, typename ...Args> void Window::addQueue(F f, Args...args) { queue.Enqueue(f, std::forward<Args>(args)...); } void Window::execQueue() { queue.CallAll(); } template<typename T> int add(T a, T b) { std::cout << "add(" << a << "," << b << ") -> " << a+b << "\n"; return a + b; } class foo{ public: template<typename T> T add( T a, T b) { std::cout << "foo::add(" << a << "," << b << ") -> " << a+b << "\n"; return a + b; } template<typename T> static T static_add( T a, T b) { std::cout << "foo::static_add(" << a << "," << b << ") -> " << a+b << "\n"; return a + b; } }; int main() { foo bar; auto bar_add = [&bar](auto a,auto b){ return bar.add<int>(a,b); }; auto bind_add = std::bind(&foo::add<int>, &bar, std::placeholders::_1, std::placeholders::_2); Window window(sf::VideoMode(600, 600),"Test Window",7U,sf::ContextSettings()); window.addQueue(bind_add,5,2); window.addQueue(bar_add,5,2); window.addQueue(add<int>,5,2); window.addQueue(foo::static_add<int>,5,2); window.execQueue(); 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