Итак, этот вопрос возник, выполняя довольно простое кодирование, рассмотрим следующее:
for(unsigned int x=0x00000000; x<0xFFFFFFFF; x++)
{
// ...
}
Приведенный выше код работает, как и ожидалось, при условии, что 'sizeof(unsigned int)>= 4', однако, как мы знаем, на некоторых платформах это может быть не так, поэтому меня интересует нечто подобное;
for(RangeBasedInt<0x00000000, 0xFFFFFFFF>::type x=0x00000000; x<0xFFFFFFFF; x++)
{
// ...
}
Где «RangeInt» — это шаблон, а «тип» — это наименьший целочисленный тип, достаточно большой для хранения диапазона значений от MINIMUM (0x00000000) до MAXIMUM (0xFFFFFFFF);
template<int MINIMUM, int MAXIMUM>
struct RangeBasedInt
{
// Type based upon MINIMUM and MAXIMUM
typedef /* MAGIC */ type;
};
Итак, вопрос в его простоте;
- Это реализовано где-то в стандартной библиотеке?
- Если нет, есть ли библиотека, реализующая это, или мне придется создать свою собственную на основе std::numeric_limits