online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#ifdef __cplusplus #include <iostream> #endif #define PRINT(x) ; Print(#x, ":", string(x)) template<typename T> class main_wrapper{ public: T data; }; template<typename T> class external_wrapper{ public: T data; }; template<typename T> class A{ public: class internal_wrapper : public external_wrapper<T> {}; main_wrapper<internal_wrapper> internal_wrapper_0; main_wrapper<external_wrapper<T>> external_wrapper_0; A(){ main_wrapper<internal_wrapper> internal_wrapper_1; main_wrapper<external_wrapper<T>> external_wrapper_1; #ifdef __MQL5__ PRINT(__FUNCSIG__); PRINT(typename(internal_wrapper_0.data.data)); // (Bug) int int PRINT(typename(external_wrapper_0.data.data)); // (OK) int B* PRINT(typename(internal_wrapper_1.data.data)); // (Bug) int int PRINT(typename(external_wrapper_1.data.data)); // (OK) int B* #endif } }; class B{ char data[10]; }; class C{ char data[1000]; }; void OnStart() { A<int> val_int; A<B*> val_ptr; printf("%d\n", sizeof(main_wrapper<A<B>::internal_wrapper>)); // (Bug) 36 //sizeof(main_wrapper<A<int>::internal_wrapper>) is used printf("%d\n", sizeof(main_wrapper<A<C>::internal_wrapper>)); // (Bug) 36 //sizeof(main_wrapper<A<int>::internal_wrapper>) is used } int main(){ OnStart(); return 1; }

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