#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;
}