// ---------
// Enums.c++
// ---------
#include <cassert> // assert
#include <iostream> // cout, endl
namespace My {
enum Color {
red,
green,
blue,
yellow = blue,
purple};}
int main () {
using namespace std;
cout << "Enums.c++" << endl;
assert(My::blue == 2);
assert(My::yellow == 2);
assert(My::purple == 3);
assert(My::red == My::red);
assert(My::green != My::blue);
assert(My::red < My::blue);
My::Color x = My::red;
My::Color y = My::green;
My::Color z = My::blue;
assert(x == x);
assert(y != z);
assert(y < z);
assert(y <= z);
assert(z > y);
assert(z >= y);
int i = My::blue;
assert(i == 2);
// My::Color t = 2; // error: invalid conversion from 'int' to 'My::Color'
My::Color t = static_cast<My::Color>(2);
assert(t == 2);
switch (x) {
case My::red:
break;
case My::green:
break;
default:
break;}
cout << "Done." << endl;
return 0;}
syntax highlighted by Code2HTML, v. 0.9.1