У меня есть класс с перечислением для единиц длины.
class LengthUnit
{
public:
enum Value
{
IN,
CM,
FT
};
static double convert(double value, Value from, Value to){
if (from == to) return value;
return value * getScale(from)/getScale(to);
}
constexpr LengthUnit(Value value) : value(value) {}
bool operator==(LengthUnit lUnit) const { return value == lUnit.value; }
bool operator!=(LengthUnit lUnit) const { return value != lUnit.value; }
private:
static double getScale(Value value){
switch (value){
case IN: return 2.54; // 1 in = 2.54 cm
case FT: return 30.48; // 1 ft = 30.48 cm
case CM: return 1;
default:
throw QException();
}
}
Value value;
};
В 6-й строке обнаружена ошибка.
error: expected identifier before ',' token
IN,
^
Если я изменю имя переменнойОт IN до INCHES ошибка исчезает.
Что вызывает эту ошибку?Насколько я могу судить, IN не является ключевым словом C ++ или Qt, так почему имя вызывает проблему?