Я работаю с некоторыми классами, которые были созданы кем-то другим. Ниже приведен раздел класса, я удалил большую его часть, поскольку он не имеет отношения к этому вопросу
struct OrderStatus {
enum Value {
New = (char)48,
PartiallyFilled = (char)49,
Filled = (char)50,
Cancelled = (char)52,
Replaced = (char)53,
Rejected = (char)56,
Expired = (char)67,
Undefined = (char)85,
NULL_VALUE = (char)0
};
private:
Value m_val;
public:
explicit OrderStatus(int v) : m_val(Value(v)) {}
explicit OrderStatus(size_t v) : m_val(Value(v)) {}
OrderStatus() : m_val(NULL_VALUE) {}
constexpr OrderStatus(Value v) : m_val(v) {}
operator Value() const { return m_val; }
};
Два вопроса :
Что делает operator Value()
?
Я буду работать с экземпляром этого класса и хочу сделать switch
для этого экземпляра m_val
, но это личное. Возможно ли это?