online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <memory> #include <variant> class Car { public: Car( ) = default; }; class ICECar : public Car { public: ICECar( ) { } void visitCarService( ) { std::cout << "ICE visitCarService\n"; } }; class ECar : public Car { public: ECar( ) { } void visitCarService( ) { std::cout << "E visitCarService\n"; } }; using car_variant = std::variant< std::shared_ptr<ICECar>, std::shared_ptr<ECar>>; template <size_t C> void visitCarService(std::array<car_variant, C>& cars) { for (auto& c : cars) { std::visit( [](auto&& arg) { arg->visitCarService( ); }, c); } } int main(int argc, char** argv) { ICECar ice_car { }; ECar e_car { }; std::array<car_variant, 2> cars { std::make_shared<ICECar>(ice_car), std::make_shared<ECar>(e_car) }; visitCarService(cars); 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