online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
class IResetable { public: virtual void Reset(void) = 0; }; template<typename ConfigStruct> class Config { // Fields public: const ConfigStruct defaults; ConfigStruct config; // Methods protected: Config(ConfigStruct defaults) : defaults(defaults) { } // Methods public: virtual bool SetConfig(ConfigStruct new_config) { config = new_config; return true; }; virtual ConfigStruct GetConfig(void) { return config; }; virtual bool RestoreDefaultConfig(void) { config = defaults; return true; } virtual ConfigStruct GetDefaults(void) { return defaults; }; }; template <typename ConfigStruct, typename StateStruct> class AppliedEntity : public IResetable , public Config<ConfigStruct> { StateStruct state; public: AppliedEntity(const ConfigStruct defaults) : Config<ConfigStruct>(defaults) { } virtual void Init(void) { this->config.open_delay = 1; } virtual bool SetConfig(ConfigStruct new_config) { Reset(); this->config = new_config; Reset(); return true; } }; struct FlapConfig { int open_delay; int port; }; struct FlapState { int elapsed_time; }; class Flap : public AppliedEntity<FlapConfig, FlapState> { private: public: Flap(FlapConfig config) : AppliedEntity<FlapConfig, FlapState>(config) { } void Reset(void) { } }; FlapConfig config = { 1, 1 }; Flap flap(config); int main(void) { flap.config.open_delay = 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