42#include "EST_TNamedEnum.h"
43#include "EST_String.h"
48# define InfoType const char *
51typedef enum { c_red=1, c_blue=2, c_green=3, c_unknown=666} Colour;
53Start_TNamedEnumI(Colour, InfoType, ColourMap)
54 { c_unknown, {
"grey"},
"Xenon"},
55 { c_red, {
"red",
"scarlet"},
"Mercury"},
56 { c_blue, {
"blue",
"navy",
"sad"},
"Steel"},
57 { c_unknown, {
"UNKNOWN COLOUR"},
"x"}
58End_TNamedEnumI(Colour, InfoType, ColourMap)
62void print_q(
void) {
cout <<
"???\n"; }
63void print_1(
void) {
cout <<
"111\n"; }
64void print_2(
void) {
cout <<
"222\n"; }
65void print_3(
void) {
cout <<
"333\n"; }
69 { c_unknown, {print_q}},
70 { c_red, {print_1, print_3}},
82 n = ColourMap.name(c1);
85 n = ColourMap.name(c2);
86 cout <<
"c2 is " << (n?n:
"[NULL]") <<
"\n";
88 n = ColourMap.name(c3);
117 cout <<
"c_unknown ";
127#if defined(INSTANTIATE_TEMPLATES)
128#include "../base_class/EST_TNamedEnum.cc"
130Instantiate_TNamedEnumI(Colour, InfoType)
132Instantiate_TValuedEnum(Colour,
PrintFn)