Escolha automaticamente um tipo de variável grande o suficiente para armazenar um número especificado

Existe alguma maneira no C ++ definir um tipo que seja grande o suficiente para armazenar no máximo um número específico, presumivelmente usando algum código de modelo inteligente. Por exemplo, eu quero poder escrever: -

Integer<10000>::type dataItem;

E esse tipo é resolvido com o tipo menor que é grande o suficiente para armazenar o valor especificad

Background: Eu preciso gerar algumas definições de variáveis usando um script de um arquivo de dados externo. Eu acho que eu poderia fazer o script olhar para os valores e então usaruint8_t, uint16_t, uint32_t, etc., dependendo do valor, mas parece maiselegant para criar o tamanho no código C ++ gerad

Não vejo nenhuma maneira de criar um modelo que possa fazer isso, mas conhecendo os modelos C ++, tenho certeza de que existe um caminho. Alguma ideia

questionAnswers(12)

yourAnswerToTheQuestion