Enumerations and State
Enum Switch
A switch statement can make one branch for each enum value.
Enum Switch
enum_switch.cpp
#include <iostream>
#include <string>
enum class OrderStatus {
NewOrder,
Paid,
Shipped
};
int main() {
OrderStatus status = ;
std::string message;
switch (status) {
case OrderStatus::NewOrder:
message = "wait for payment";
break;
case OrderStatus::Paid:
message = "pack order";
break;
case OrderStatus::Shipped:
message = "send tracking";
break;
}
std::cout << "message=" << message << std::endl;
return 0;
}
#include <iostream>
#include <string>
enum class OrderStatus {
NewOrder,
Paid,
Shipped
};
int main() {
OrderStatus status = ;
std::string message;
switch (status) {
case OrderStatus::NewOrder:
message = "wait for payment";
break;
case OrderStatus::Paid:
message = "pack order";
break;
case OrderStatus::Shipped:
message = "send tracking";
break;
}
std::cout << "message=" << message << std::endl;
return 0;
}
#include <iostream>
#include <string>
enum class OrderStatus {
NewOrder,
Paid,
Shipped
};
int main() {
OrderStatus status = ;
std::string message;
switch (status) {
case OrderStatus::NewOrder:
message = "wait for payment";
break;
case OrderStatus::Paid:
message = "pack order";
break;
case OrderStatus::Shipped:
message = "send tracking";
break;
}
std::cout << "message=" << message << std::endl;
return 0;
}
enum switch
Switching on an enum keeps branch labels tied to named states.