online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <map> #include <vector> #include <typeindex> struct RequestA{}; struct RequestB{}; struct RequestC{}; class RequestHandler { public: void tick() { std::cout<<"tick called"<<std::endl; } private: std::vector<RequestA> queueA; std::vector<RequestB> queueB; std::vector<RequestC> queueC; //create std::map - STEP 1 std::map<std::type_index, void*> myMap{{typeid(RequestA), &queueA}, {typeid(RequestB), &queueB}, {typeid(RequestC), &queueC}}; public: //create member function template - STEP 2 template<typename T> void add(T Arg); }; template<typename T> void RequestHandler::add(T Arg) // - STEP 3 { std::cout << "add called on " <<typeid(Arg).name() << std::endl;//just for debugging purposes std::cout << "size before push_back "<< (*static_cast<std::vector<decltype(Arg)>*>(myMap.at(typeid(Arg)))).size()<<std::endl;//just for debugging (*static_cast<std::vector<decltype(Arg)>*>(myMap.at(typeid(Arg)))).push_back(Arg); std::cout << "size after push_back "<< (*static_cast<std::vector<decltype(Arg)>*>(myMap.at(typeid(Arg)))).size()<<std::endl; std::cout<<"--------------------------------------"<<std::endl; } int main() { RequestA A; RequestB B; RequestC C; RequestHandler rq; //call RequestHandler's add method simulating the requests rq.add(A); rq.add(B); rq.add(B); rq.add(C); }

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