online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> class input_iterator_tag{}; class forward_iterator_tag : public input_iterator_tag {}; class bidirectional_iterator_tag : public forward_iterator_tag {}; class random_access_iterator_tag : public bidirectional_iterator_tag {}; struct It{ char data[10]; }; template<typename _It> struct wrapper : public _It{}; struct main_It : public wrapper<It>{}; class Base{ public: struct iterator : public main_It{}; }; class Container { public: struct iterator : public Base::iterator{}; }; template<typename _InputIterator1> void __find_end (const wrapper<_InputIterator1> &_first1, input_iterator_tag*, input_iterator_tag*) { printf("input_iterator_tag\r\n"); } template<typename _BidirectionalIterator1> void __find_end (const wrapper<_BidirectionalIterator1> &_first1, bidirectional_iterator_tag*, bidirectional_iterator_tag*) { printf("bidirectional_iterator_tag\r\n"); } template<typename _RandomAccessIterator1> void __find_end (const wrapper<_RandomAccessIterator1> &_first1, random_access_iterator_tag*, random_access_iterator_tag*) { printf("random_access_iterator_tag\r\n"); } void OnStart() { bidirectional_iterator_tag* bidirectional_tag = NULL; random_access_iterator_tag* random_access_tag = NULL; Container::iterator container; __find_end(container, (bidirectional_iterator_tag*)NULL, (bidirectional_iterator_tag*)NULL); // BUG: input_iterator_tag //expected value: bidirectional_iterator_tag __find_end(container, (random_access_iterator_tag*)NULL, (random_access_iterator_tag*)NULL); // BUG: bidirectional_iterator_tag //expected value: random_access_iterator_tag __find_end(container, bidirectional_tag, bidirectional_tag); // BUG: input_iterator_tag //expected value: bidirectional_iterator_tag __find_end(container, random_access_tag, random_access_tag); // BUG: bidirectional_iterator_tag //expected value: random_access_iterator_tag } int main(){ OnStart(); 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