Автоматически выбирать тип переменной, достаточно большой, чтобы содержать указанное число

Есть ли способ в C ++ определить тип, который достаточно большой, чтобы содержать не более определенного числа, предположительно с использованием некоторого умного кода шаблона . Например, я хочу иметь возможность написать: -

Integer<10000>::type dataItem;

И разрешить этот тип до наименьшего типа, который достаточно велик, чтобы удерживать указанное значение?

Предпосылки: мне нужно сгенерировать некоторые определения переменных, используя сценарий из файл внешних данных. Думаю, я мог бы заставить сценарий смотреть значения, а затем использовать uint8_t , uint16_t , uint32_t и т. Д. В зависимости от значения, но кажется, что больше элегантный , чтобы встраивать размер в сгенерированный код C ++.

Я не вижу никакого способа создать шаблон, который может это сделать, но, зная шаблоны C ++, я уверен, что способ есть. Есть идеи?

54
задан Peter Mortensen 12 August 2011 в 04:22
поделиться