Я хочу создать перечисление в C ++ 11 таким образом, чтобы я мог объявить значение некоторых констант в исходном коде при объявлении их в заголовочном файле:
A.hpp
typedef enum class ABC: uint8_t
{
CAR,
DOG,
HOUSE
};
extern ABC ABCType;
A. cpp
#include "A.hpp"
ABCType = { CAR = 1, DOG = 2, HOUSE = 3 };
Причина, по которой это необходимо, состоит в том, что начальные значения enum зависят от некоторых других объявлений библиотеки и должны быть неизменяемыми для пользователей (просто требование стиля кодирования для меня). Таким образом, пользователь может использовать что-то вроде следующего:
#include "A.hpp"
int classA::method()
{
...
check(ABCType.HOUSE);
...
}
Я пробовал это, но VC ++ IDE говорит "слишком много значений инициализатора", почему это так?