Я ищу способ создания класса с типом параметра шаблона на основе номера параметра шаблона.
То, что я пытаюсь сделать, это примерно так:
template<size_t n>
constexpr auto type_from_size() {
if(n < 256) {
return uint8_t;
} else {
return uint16_t;
}
}
template<size_t n>
class X {
type_from_size<n>() t;
}
X<500> x;
x.t = 500;
Итак, в приведенном выше коде функция constexpr
type_from_size()
получит число 500 и вернет тип uint16_t
, и это будет тип члена X.t
.
Я знаю, что это явно ужасный код, но возможно ли это с помощью шаблонов?