fork download
  1. #include <iostream>
  2. #include <limits>
  3. #include <typeinfo>
  4. #define PRINT_TYPE(x) std::cout << #x << ": " << typeid(x).name() << std::endl
  5. #define PRINT_VALUE(x) std::cout << #x << ": " << typeid(x).name() << "(" << x << ")" <<std::endl
  6. int main()
  7. {
  8. PRINT_TYPE(int);
  9. PRINT_TYPE(long int);
  10. PRINT_TYPE(long long int);
  11. PRINT_TYPE(unsigned int);
  12. PRINT_TYPE(unsigned long int);
  13. PRINT_TYPE(unsigned long long int);
  14. PRINT_VALUE(std::numeric_limits<int>::min());
  15. PRINT_VALUE(std::numeric_limits<int>::max());
  16. PRINT_VALUE(-2147483648);
  17. PRINT_VALUE(-0x80000000);
  18. PRINT_VALUE(-0x80000000l);
  19. int v = -2147483648;
  20. PRINT_VALUE(v);
  21. v = -0x80000000;
  22. PRINT_VALUE(v);
  23. return -0x80000000 == -2147483648 ? 0 : 1;
  24. }
  25.  
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
int: i
long int: l
long long int: x
unsigned int: j
unsigned long int: m
unsigned long long int: y
std::numeric_limits<int>::min(): i(-2147483648)
std::numeric_limits<int>::max(): i(2147483647)
-2147483648: m(2147483648)
-0x80000000: j(2147483648)
-0x80000000l: m(2147483648)
v: i(-2147483648)
v: i(-2147483648)