While defining a network-message struct:
Is there a way to combine these requirements? something like: typedef enum Op : uint32_t {save = 100, retrieve = 101, delete = 200};
"100" "101" "200
Well, I don't quite understand what these strings mean? Your question is not very clear to me.
It sounds like what you want is enum class
(Scoped enumerations).
enum class Op : uint32_t
{
_100 = 100,
_101 = 101,
_200 = 200
};
limit the allowed values
Yes.
Need to keep all fields as unsigned, and the Op specifically to be uint32_t.
Yes.
You should name these enumerators something meaningful, rather than the same as the value.
According to your edited post:
enum class Op : uint32_t
{
save = 100,
retrieve = 101,
delete_ = 200
};