Рад приветствовать всех гуру С++, кто готов помочь со следующим вопросом: сейчас в одной подсистеме нашей библиотеки активно понадобилось создавать типы в два раза большие и в два раза меньшие, по количеству бит, типа:
uint32_t -> uint64_t или uint32_t -> uint_16 // и т.д.
Сейчас это сделал с помощью самописанных type traits, ничего сложного:
// Дальше используется как-то так:
double_uint_t<uint32_t> a; // а будет 64-х битным
half_uint_t<uint32_t> b; // b будет 16-и битным
Но вот задумался, а не подвезли ли уже в С++17 что-то готовое. Просто не хочется использовать велосипед который уже есть в стандарте или не нужен по причине того что нужный функционал достигается гораздо проще. Кто что посоветует?