Ваш вопрос состоит из двух частей.
1. 128-bin
integer. Как предложено @PatrikBeck boost::multiprecision
, это хороший способ для действительно больших целых чисел.
2.Variable для хранения UUID
/ GUID
/ CLSID
или того, что вы его называете. В этом случае boost::multiprecision
не является хорошей идеей. Вам нужна структура GUID , которая предназначена для этой цели. По мере добавления кросс-платформенного тега вы можете просто скопировать эту структуру в свой код и сделать это следующим образом:
struct GUID
{
uint32_t Data1;
uint16_t Data2;
uint16_t Data3;
uint8_t Data4[8];
};
Этот формат определен Microsoft по ряду внутренних причин, вы можете даже упростить его:
struct GUID
{
uint8_t Data[16];
};
Вы получите лучшую производительность, имеющую простую структуру, а не объект, который может обрабатывать множество разных вещей. В любом случае вам не нужно делать математику с GUIDS, так что вам не нужен какой-либо причудливый объект.