<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 in 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 the
global namespace or 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/stdint.h></code> and <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. An
exception is <code><boost/stdint.h></code>which uses a <b> .h</b> extension to indicate its C rather than C++ heritage.</p>
<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>