// numeric_limits example
   #include <iostream>     // std::cout
#include <limits>       // std::numeric_limits

int main () {
  std::cout << std::boolalpha;
  std::cout << "Minimum value for int: " << std::numeric_limits<int>::min() << '\n';
  std::cout << "Maximum value for int: " << std::numeric_limits<int>::max() << '\n';
  std::cout << "int is signed: " << std::numeric_limits<int>::is_signed << '\n';
  std::cout << "Non-sign bits in     short int: " << std::numeric_limits<short int>::digits << '\n';
  std::cout << "Non-sign bits in           int: " << std::numeric_limits<int>::digits << '\n';
  std::cout << "Non-sign bits in      long int: " << std::numeric_limits<long int>::digits << '\n';
  std::cout << "Non-sign bits in long long int: " << std::numeric_limits<long long int>::digits << '\n';

  std::cout << "Maximum value for     short int: " << std::numeric_limits<short int>::max() << '\n';
  std::cout << "Maximum value for           int: " << std::numeric_limits<int>::max() << '\n';
  std::cout << "Maximum value for      long int: " << std::numeric_limits<long int>::max() << '\n';
  std::cout << "Maximum value for long long int: " << std::numeric_limits<long long int>::max() << '\n';
  std::cout << "Maximum value for         float: " << std::numeric_limits<float>::max() << '\n';
  std::cout << "Maximum value for        double: " << std::numeric_limits<double>::max() << '\n';
  std::cout << "Maximum value for   long double: " << std::numeric_limits<long double>::max() << '\n';
  
  return 0;
}