Я обернул структуру вокруг перечисления, чтобы получить перечисление области видимости. E.g.:
namespace Xyz
{
struct SortDirection
{
enum Enum {ASC, DESC};
};
class MyClass
...
Это отлично работает. Теперь я пытаюсь определить тот же тип комбинирования enum / struct, но на этот раз внутри класса:
class MainDialog
{
public:
...
private:
struct SomeType
enum Columns {
ROW_NUMBER_COLUMN,
NAME_COLUMN,
AGE_COLUMN,
COLUMN_MAX_COUNT_
};
};
}
Однако это дает мне ошибку intellisense:
Ошибка: недопустимая комбинация спецификаторов типов
Когда я пытаюсь скомпилировать, я получаю:
1>c:\something\maindialog.h(80): error C2236: unexpected
'enum' 'MainDialog::Columns'. Did you forget a ';'?
Перечисление прекрасно работает не внутри структуры, но как только я обертываю его в структуру, я получаю эту ошибку.