fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. template <typename T>
  6. T constexpr mask101()
  7. {
  8. T ret = 0;
  9. for(T mask=1;mask;mask<<=2)
  10. {
  11. ret|=mask;
  12. }
  13. return ret;
  14. }
  15.  
  16. int main()
  17. {
  18. constexpr auto test = mask101<size_t>();
  19. cout << std::hex <<"0x" << test << endl;
  20. cout << std::hex <<"0x" << mask101<int32_t>() << endl;
  21. cout << std::hex <<"0x" << mask101<uint16_t>() << endl;
  22. cout << std::hex <<"0x" << int(mask101<int8_t>()) << endl;
  23. return 0;
  24. }
Success #stdin #stdout 0.01s 5344KB
stdin
Standard input is empty
stdout
0x5555555555555555
0x55555555
0x5555
0x55