Есть ли способ перегрузить оператор приведения для преобразования между двумя перечислениями?
В моем коде у меня есть
enum devStatus
{
NOT_OPERATING,
INITIALISING,
DEGRADED,
NORMAL
};
enum dataStatus
{
UNAVAILABLE = 1,
DEGRADED,
NORMAL
}
, где NOT_OPERATING и INITIALISING отображаются в UNAVAILABLE;Деградированная и нормальная карта прямо напротив.Они фиксируются внешними интерфейсами.
Я ищу способ преобразования между devStatus
и dataStatus
и хотел бы написать что-то вроде:
devStatus devSts;
getDeviceStatus(&devSts);
dataStatus dataSts = (dataStatus)devSts;
Я знаю, что если бы это были классы,Я мог бы написать devStatus::operator dataStatus()
, чтобы сделать это.Есть ли способ сделать это для перечислений?
Я мог бы просто иметь свободную функцию dataStatus devStatus2dataStatus(const devStatus& desSts)