Чтобы сделать код более читабельным, я сделал следующее с помощью tuple
:
std::tuple<uint32_t, uint32_t, uint32_t> key;
enum tpl {
arg1 = 0, arg2 = 1, arg3 = 2
};
Теперь я могу написать:
auto _arg1 = std::get<tpl::arg1>(key);
Теперь у меня возникла проблема.Если я напишу:
auto arg1 = std::get<tpl::arg1>(key);
Переменная arg1
уже является перечислением.Поэтому я хочу переключиться на:
enum class tpl: int {
arg1 = 0, arg2 = 1, arg3 = 2
};
Но здесь что-то не так.Компилятор говорит:
ошибка C2672: 'std :: get': не найдена соответствующая перегруженная функция
Какого типа этот индекс в std::get
и может ли это бытьназван в определении класса enum?
Я пытался
const constexpr
const int
....