В основном, я бы хотел (во время компиляции) получить тип в два раза по типу stdint. Я могу это сделать вручнуюПолучите в два раза больше ширины
template <typename T>
class twice_as_wide{};
template<>
class twice_as_wide<uint8_t>
{
public:
typedef uint16_t type;
};
template<>
class twice_as_wide<int8_t>
{
public:
typedef int16_t type;
};
template<>
class twice_as_wide<uint16_t>
{
public:
typedef uint32_t type;
};
ect, я просто хочу убедиться, что этого еще нет. Я использую Visual Studio 2010 C++ 0X (раздражает, я знаю) и уже имеет зависимость от boost. Кто-нибудь знает о существующей реализации этого?
Просто быть педантичным, вы должны использовать 'STD :: numeric_limits :: digits' вместо' 8 * SizeOf (T) '. В большинстве систем есть 8 бит в байте, но это неверно для всех систем. –
@MarkLakata: вы правы, исправляя это в моем anser. – dhavenith