-
Notifications
You must be signed in to change notification settings - Fork 16
/
enum_class.cpp
48 lines (42 loc) · 1.03 KB
/
enum_class.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <vector>
#include <iostream>
//https://stackoverflow.com/questions/9062082/switch-statements-with-strongly-typed-enumerations
enum class FB{
X = -1, //don't care
B, //background
F //foreground
};
int main(){
std::vector<FB> cross = {
FB::X, FB::F, FB::X,
FB::F, FB::F, FB::F,
FB::X, FB::F, FB::X};
for(int i = 0; i < cross.size(); i++){
switch(cross[i]){
case FB::F:
std::cout << i << " is foreground" << std::endl;
break;
case FB::B:
std::cout << i << " is background" << std::endl;
break;
case FB::X:
std::cout << "we don't care " << i << std::endl;
break;
default:
std::cout << "invalid enum value!" << std::endl;
break;
}
}
return 0;
}
/*
we don't care 0
1 is foreground
we don't care 2
3 is foreground
4 is foreground
5 is foreground
we don't care 6
7 is foreground
we don't care 8
*/