@KFan
Веб-программист

В C++ нельзя использовать ENUM значения начинающиеся на ERROR?

Есть такой enum:

enum class MonoIOError {
	ERROR_SUCCESS = 0,
	ERROR_FILE_NOT_FOUND = 2,
	ERROR_PATH_NOT_FOUND = 3,
	ERROR_TOO_MANY_OPEN_FILES = 4,
	ERROR_ACCESS_DENIED = 5,
	ERROR_INVALID_HANDLE = 6,
	ERROR_INVALID_DRIVE = 15,
	ERROR_NOT_SAME_DEVICE = 17,
	ERROR_NO_MORE_FILES = 18,
	ERROR_NOT_READY = 21,
	ERROR_WRITE_FAULT = 29,
	ERROR_READ_FAULT = 30,
	ERROR_GEN_FAILURE = 31,
	ERROR_SHARING_VIOLATION = 32,
	ERROR_LOCK_VIOLATION = 33,
	ERROR_HANDLE_DISK_FULL = 39,
	ERROR_FILE_EXISTS = 80,
	ERROR_CANNOT_MAKE = 82,
	ERROR_INVALID_PARAMETER = 87,
	ERROR_BROKEN_PIPE = 109,
	ERROR_INVALID_NAME = 123,
	ERROR_DIR_NOT_EMPTY = 145,
	ERROR_ALREADY_EXISTS = 183,
	ERROR_FILENAME_EXCED_RANGE = 206,
	ERROR_DIRECTORY = 267,
	ERROR_ENCRYPTION_FAILED = 6000
};


Абсолютно в каждой строчке я получаю ошибку:
E0040 требуется идентификатор

Нечто подобное происходит так же здесь:

enum class TOKEN {
	NONE = 0,
	CURLY_OPEN = 1,
	CURLY_CLOSE = 2,
	SQUARED_OPEN = 3,
	SQUARED_CLOSE = 4,
	COLON = 5,
	COMMA = 6,
	STRING = 7,
	NUMBER = 8,
	TRUE = 9,
	FALSE = 10,
	NULL = 11
};


Но уже только с последними тремя значениями. Можно ли обойти эту ошибку?

Уточню что все enum завернуты в отдельный namespace
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
Adamos
@Adamos
#define ERROR_SUCCESS 0
от этого никакие неймспейсы не помогают.
А у вас, похоже, где-то подключаются библиотеки с подобными объявлениями.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы