> поля класса не будут меняться в процессе
значит, их нужно делать статическими константами и, возможно, вообще убрать класс, заменив на namespace.
> "Говорят" можно через шаблон, но как не сказали)
По сути, те же статические константы, только могут быть только целым числом и не имеют адреса.
template< int X, int Y >
class NAME
{
public:
enum { field1 = X, field2 = Y };
};
typedef NAME<5,7> Name57;
int a = Name57::field1;
int b = Name57::field2;