Tôi có một lớp enum như thế này:Enum Class "không thể chuyển đổi sang unsigned int"
typedef unsigned int binary_instructions_t;
enum class BinaryInstructions : binary_instructions_t
{
END_INSTRUCTION = 0x0,
RESET,
SET_STEP_TIME,
SET_STOP_TIME,
START,
ADD
};
Và tôi đang cố gắng sử dụng các thành viên của enum trong một tuyên bố chuyển đổi như thế này:
const std::string& function(binary_instructions_t arg, bool& error_detect)
{
switch(arg)
{
case (unsigned int)BinaryInstructions::END_INSTRUCTION:
return "end";
break;
}
translate_error = true;
return "ERROR";
}
Tại sao dàn diễn viên là (unsigned int)
được yêu cầu khi loại cơ bản đã là unsigned int
?
nếu bạn chuyển loại "đúng" để hoạt động (BinaryInstructions), không phải là loại nằm bên dưới (binary_instructions_t) thì bạn sẽ không cần truyền. –