C++, что значит наследование enum class

Рассмотрим следующий код:

enum class Enum : uint8_t
{
    // ...
};

Подскажите, пожалуйста, верно ли я понимаю, что данное наследование(если это можно так назвать) позволяет задать размер типа?

Например, у меня есть DLL и в ней есть функция, которая принимает указатель на структуру, в которой есть некие данные. Могу ли я (ради удобства) использовать в этой структуре поле не типа uint8_t, а типа enum class .. : uint8_t?

Например:

enum class Code : uint8_t
{
    // ...
};    

struct Message
{
    Code code;
    // ...
};

С таким кодом было бы намного удобнее работать, потому что сразу было бы понятно, за что отвечает поле code и какие возможные значения оно может принять. Единственная опасность заключается в том, что в поле могут попасть значения, для которых в enum class нет соответствия.

Все ли я верно понимаю?


Ответы (0 шт):