<tdvalign="top">Templates for integer type selection based on properties such as
maximum value or number of bits.</td>
<tdvalign="top">Use to select the type an integer when some property such as maximum value or number of bits is known.
Useful for generic programming. </td>
</tr>
</table>
<h2>Rationale</h2>
<p>The organization of boost integer headers and classes is designed to take
advantage of <code><stdint.h></code> types from the 1999 C standard
without resorting to undefined behavior in terms of
the 1998 C++ standard. The header <code><boost/cstdint.hpp></code>
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 <code><stdint.h></code> and <code><cstdint></code>, then <code><boost/cstdint.hpp></code>
will continue to function, but will become redundant and may be safely deprecated.</p>
<p>Because these are boost headers, their names conform to boost header naming
conventions rather than C++ Standard Library header naming conventions.
<h2>Caveat emptor</h2>
<p>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.</p>
<p>
As another implementation artifact, certain C
<code><stdint.h></code> typedef names may possibly be visible in the
global namespace to users of <code><boost/cstdint.hpp></code>.
Don't use these names, they are not part of any Boost specified
interface. Use the respective names in namespace <code>boost</code>