Использование C ++ (Visual Studio). Я пытаюсь найти решение для преобразования перечисления в строку. Я столкнулся с X Macros (http://drdobbs.com/cpp/184401387), который кажется разумным решением, но мне трудно заставить его работать внутри класса. Все примеры, которые я видел, показывают все, что определено вне класса .
// ColorNames.h
X(Red, "Red"),
X(Blue, "Blue"),
...
// MyClass.h
class MyClass
{
public:
MyClass();
virtual ~MyClass();
#define X(a, b) a
enum Colors {
#include "ColorNames.h"
};
#undef X
#define X(a, b) b
char *colorNameStrings_[] = {
#include "ColorNames.h"
};
#undef X
}
IDE задыхается в строке *colorNameStrings_[] =...
Я полагаю, вы не можете инициализировать переменную-член данных в заголовочном файле? Как мне заставить это работать?