Boost Integer Library

Typedef's based on the 1999 C Standard header <stdint.h>, wrapped in namespace boost.
This implementation may #include the compiler
supplied <stdint.h>, if present.

Supplies typedefs for standard integer types such as int32_t or uint_least16_t.
Use in preference to <stdint.h>
for enhanced portability. Furthermore, all names are safely placed in the boost namespace.

Use to find a bound based on a minimum or maximum value.
Useful for generic programming.

Rationale

The organization of boost integer headers and classes is designed to
take advantage of <stdint.h> types from the 1999 C
standard without resorting to undefined behavior in terms of the 1998
C++ standard. The header <boost/cstdint.hpp> makes
the standard integer types safely available in namespace
boost without placing any names in namespace
std. As always, the intension is to complement rather than
compete with the C++ Standard Library. Should some future C++ standard
include <stdint.h> and <cstdint>,
then <boost/cstdint.hpp> will continue to function,
but will become redundant and may be safely deprecated.

Because these are boost headers, their names conform to boost header
naming conventions rather than C++ Standard Library header naming
conventions.

Caveat emptor

As an implementation artifact, certain C
<limits.h> macro names may possibly be visible to
users of <boost/cstdint.hpp>. Don't use these
macros; they are not part of any Boost-specified interface. Use
boost::integer_traits<> or
std::numeric_limits<> instead.

As another implementation artifact, certain C
<stdint.h> typedef names may possibly be visible in
the global namespace to users of <boost/cstdint.hpp>.
Don't use these names, they are not part of any Boost-specified
interface. Use the respective names in namespace boost
instead.