我在枚举周围包含了一个结构来获取一个范围的枚举。 E.g:
namespace Xyz
{
struct SortDirection
{
enum Enum {ASC, DESC};
};
class MyClass
...
这很好用。现在我正在尝试定义相同类型的枚举/结构组合,但这次在类中:
class MainDialog
{
public:
...
private:
struct SomeType
enum Columns {
ROW_NUMBER_COLUMN,
NAME_COLUMN,
AGE_COLUMN,
COLUMN_MAX_COUNT_
};
};
}
然而,这给了我一个智能感知错误:
错误:类型说明符的组合无效
当我尝试编译时,我得到:
1>c:\something\maindialog.h(80): error C2236: unexpected
'enum' 'MainDialog::Columns'. Did you forget a ';'?
enum在struct中运行良好 not ,但是只要我将它包装在struct中就会出现此错误。
答案 0 :(得分:7)
尝试
struct SomeType { // Note the open brace
答案 1 :(得分:2)
你错过了一个开口大括号。编译器看到struct SomeType enum Columns
并且不知道如何处理它。
答案 2 :(得分:1)
//这是正确的代码。
private:
struct SomeType
{
enum Columns
{
ROW_NUMBER_COLUMN,
NAME_COLUMN,
AGE_COLUMN,
COLUMN_MAX_COUNT_
};
};