У меня есть набранное перечислениеC++ 11 Кастинг перечислений к Интс
enum side : int {_white=0,
_yellow=1,
_green=2,
_blue=3,
_red=4,
_orange=5};
Однако, используя GCC-5, компилятор говорит, что он не может использовать static_cast по следующему сценарию:
side value
function(static_cast<int *>(&value))
Почему в том, что? Выполнение static_cast<int>(value))
не вызывает ошибок.
разные типы, не следует ли использовать 'reinpterpret_cast'? –
Вы можете преобразовать bool в double, но это не означает, что указатель bool может быть осмысленно трактован как двойной указатель. –
Я думал, что типизированное перечисление было по существу тем же самым типом данных? Поскольку он вводится как 'int', компилятор должен иметь возможность принять это' static_cast' нет? Очевидно, что использование 'reinterpret_cast' работает, но это немного запах кода. –