-private:
- static const std::map<enum {enumname}, const {classname} *> _values;
- {classname}(enum {enumname} id, const char name[]);
-"""
-
-# Template for class method definitions.
-code_template = """
-{classname}::{classname}(enum {enumname} id, const char name[]) :
- EnumValue<enum {enumname}>(id, name)
-{{
-}}
-
-const {classname} *{classname}::get(int id)
-{{
- if (_values.find(static_cast<{enumname}>(id)) == _values.end())
- throw Error(SR_ERR_ARG);
-
- return {classname}::_values.at(static_cast<{enumname}>(id));
-}}