Welcome to the Better Enums tutorials! The code in this tutorial forms a valid program, which you can download and play with. The program runs as part of the automated test suite.
Safe switch
A Better Enum can be used directly in a switch statement:
#include <iostream>
#include <enum.h>
BETTER_ENUM(Channel, int, Red, Green, Blue)
int main()
{
Channel channel = Channel::Green;
int n;
switch (channel) {
case Channel::Red: n = 13; break;
case Channel::Green: n = 37; break;
case Channel::Blue: n = 42; break;
}If you miss a case or add a redundant one, your compiler should be able to give you a warning — try it!
Note that on msvc, you may need to enable warning C4062.
std::cout << n << std::endl;
return 0;
}