#include <iostream>
#include <iomanip>
using namespace std;
template <typename T>
T constexpr mask101()
{
T ret = 0;
for(T mask=1;mask;mask<<=2)
{
ret|=mask;
}
return ret;
}
int main()
{
constexpr auto test = mask101<size_t>();
cout << std::hex <<"0x" << test << endl;
cout << std::hex <<"0x" << mask101<int32_t>() << endl;
cout << std::hex <<"0x" << mask101<uint16_t>() << endl;
cout << std::hex <<"0x" << int(mask101<int8_t>()) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiAKVCBjb25zdGV4cHIgbWFzazEwMSgpIAp7CglUIHJldCA9IDA7Cglmb3IoVCBtYXNrPTE7bWFzazttYXNrPDw9MikKCXsKCQlyZXR8PW1hc2s7Cgl9CglyZXR1cm4gcmV0Owp9CgppbnQgbWFpbigpIAp7Cgljb25zdGV4cHIgYXV0byB0ZXN0ID0gbWFzazEwMTxzaXplX3Q+KCk7Cgljb3V0IDw8IHN0ZDo6aGV4IDw8IjB4IiA8PCB0ZXN0IDw8IGVuZGw7Cgljb3V0IDw8IHN0ZDo6aGV4IDw8IjB4IiA8PCBtYXNrMTAxPGludDMyX3Q+KCkgPDwgZW5kbDsKCWNvdXQgPDwgc3RkOjpoZXggPDwiMHgiIDw8IG1hc2sxMDE8dWludDE2X3Q+KCkgPDwgZW5kbDsKCWNvdXQgPDwgc3RkOjpoZXggPDwiMHgiIDw8IGludChtYXNrMTAxPGludDhfdD4oKSkgPDwgZW5kbDsKCXJldHVybiAwOwp9