online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, C#, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS Code, Compile, Run and Debug online from anywhere in world. GS www.GabrielStaples.com www.ElectricRCAircraftGuy.com Written: 25 Nov. 2020 Updated: 28 Feb. 2021 regular enum vs enum class test Shared link: https://onlinegdb.com/Hkwn_lqzd References: 1. https://stackoverflow.com/questions/8357240/how-to-automatically-convert-strongly-typed-enum-into-int 1. [my ans]https://stackoverflow.com/a/65014885/4561887 *******************************************************************************/ #include <iostream> #include <stdio.h> // enum class (AKA: "strong" or "scoped" enum [available only in C++, not C]) enum class my_enum { A = 0, B, C, }; // regular enum (AKA: "weak" or "C-style" enum [available in BOTH C and C++]) enum my_enum2 { MY_ENUM_A = 0, MY_ENUM_B, MY_ENUM_C, }; int main() { printf("Hello World\n"); // 1) scoped enum my_enum e = my_enum::A; // scoped through `my_enum::` e = my_enum::B; // IMPLICIT CASTING TO INT IS NOT ALLOWED! // int i = e; // "error: cannot convert ‘my_enum’ to ‘int’ in initialization" // But this explicit C++-style cast works fine: int i1 = static_cast<int>(e); // This explicit C-style cast works fine too, and is easier to read int i2 = (int)e; // 2) regular enum my_enum2 e2 = MY_ENUM_A; // scoped through `MY_ENUM_` e2 = MY_ENUM_B; // This implicit cast works fine / IS allowed on C-style enums! int i3 = e2; // These explicit casts are also fine, but explicit casting is NOT // required for regular enums. int i4 = static_cast<int>(e2); // explicit C++-style cast int i5 = (int)e2; // explicit C-style cast 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