Re: сконвертировать значение в enum
От: watchmaker  
Дата: 18.12.20 11:02
Оценка: 9 (1)
Здравствуйте, B0FEE664, Вы писали:

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


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

template<class TEnum, std::underlying_type_t<TEnum> src, TEnum dst, auto... other>
constexpr bool Convert(std::underlying_type_t<TEnum> x, TEnum& result) noexcept {
    if (src == x) {
        result = dst;
        return true;
    }
    return Convert<TEnum, other...>(x, result);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.