Re[2]: сконвертировать значение в enum
От: B0FEE664  
Дата: 18.12.20 11:09
Оценка:
Здравствуйте, watchmaker, Вы писали:

BFE>>Помогите, пожалуйста, реализовать функцию Convert

W>В смысле, если первый аргумент из пары совпал с параметром функции, то вернуть второй? Ну так, например:
Да.
W>
W>template<class TEnum>
W>constexpr bool Convert(std::underlying_type_t<TEnum> x, TEnum& result) noexcept {
W>    return false;
W>}

W>template<class TEnum, std::underlying_type_t<TEnum> src, TEnum dst, auto... other>
W>constexpr bool Convert(std::underlying_type_t<TEnum> x, TEnum& result) noexcept {
W>    if (src == x) {
W>        result = dst;
W>        return true;
W>    }
W>    return Convert<TEnum, other...>(x, result);
W>}
W>


А можно тоже самое, но в рамках C++14?

ЗЫ Зачем std::underlying_type_t<TEnum> ? Может можно использовать независимый тип?
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.