C++98stlbeginner
\<climits\>
C++98 · The Foundation · Compiler flag: -std=c++98
Explanation
Defines constants for the limits of integer types such as `INT_MAX`, `INT_MIN`, `LONG_MAX`, `CHAR_BIT`, etc.
Real-World Scenario
Check if adding two integers would overflow before performing the operation.
Quick Snippet
snippet.cpp
#include <climits>
if (a > INT_MAX - b) { /* overflow! */ }Full Example
climits.cpp
// CodeNebula - C++98 Example: <climits> integer limits
// Compile: g++ -std=c++98 -Wall -Wextra -o example climits.cpp
#include <iostream>
#include <climits>
int main() {
std::cout << "=== Character Limits ===" << std::endl;
std::cout << "CHAR_BIT: " << CHAR_BIT << std::endl;
std::cout << "CHAR_MIN: " << CHAR_MIN << std::endl;
std::cout << "CHAR_MAX: " << CHAR_MAX << std::endl;
std::cout << "SCHAR_MIN: " << SCHAR_MIN << std::endl;
std::cout << "SCHAR_MAX: " << SCHAR_MAX << std::endl;
std::cout << "UCHAR_MAX: " << UCHAR_MAX << std::endl;
std::cout << "\n=== Short Limits ===" << std::endl;
std::cout << "SHRT_MIN: " << SHRT_MIN << std::endl;
std::cout << "SHRT_MAX: " << SHRT_MAX << std::endl;
std::cout << "USHRT_MAX: " << USHRT_MAX << std::endl;
std::cout << "\n=== Int Limits ===" << std::endl;
std::cout << "INT_MIN: " << INT_MIN << std::endl;
std::cout << "INT_MAX: " << INT_MAX << std::endl;
std::cout << "UINT_MAX: " << UINT_MAX << std::endl;
std::cout << "\n=== Long Limits ===" << std::endl;
std::cout << "LONG_MIN: " << LONG_MIN << std::endl;
std::cout << "LONG_MAX: " << LONG_MAX << std::endl;
std::cout << "ULONG_MAX: " << ULONG_MAX << std::endl;
// Practical use: check for overflow before adding
int a = INT_MAX - 5;
int b = 3;
if (b > 0 && a > INT_MAX - b) {
std::cout << "\nAddition would overflow!" << std::endl;
} else {
std::cout << "\nSafe to add: " << (a + b) << std::endl;
}
return 0;
}
// Expected output (typical 32-bit int, 64-bit long):
// === Character Limits ===
// CHAR_BIT: 8
// CHAR_MIN: -128
// CHAR_MAX: 127
// SCHAR_MIN: -128
// SCHAR_MAX: 127
// UCHAR_MAX: 255
//
// === Short Limits ===
// SHRT_MIN: -32768
// SHRT_MAX: 32767
// USHRT_MAX: 65535
//
// === Int Limits ===
// INT_MIN: -2147483648
// INT_MAX: 2147483647
// UINT_MAX: 4294967295
//
// === Long Limits ===
// LONG_MIN: <platform-dependent>
// LONG_MAX: <platform-dependent>
// ULONG_MAX: <platform-dependent>
//
// Safe to add: 2147483645
Run command
g++ -std=c++98 -Wall -Wextra -o example climits.cpp