--- /usr/include/boost/cstdint.hpp 2005-08-23 22:30:24.000000000 +0400 +++ /home/max/src/boost/cstdint.hpp 2005-09-19 03:51:16.000000000 +0400 @@ -35,10 +35,10 @@ # ifdef __STDC_32_MODE__ // this is triggered with GCC, because it defines __cplusplus < 199707L # define BOOST_NO_INT64_T -# endif +# endif // __STDC_32_MODE__ # elif defined(__FreeBSD__) || defined(__IBMCPP__) # include -# else +# else // defined(__FreeBSD__) || defined(__IBMCPP__) # include // There is a bug in Cygwin two _C macros @@ -47,9 +47,9 @@ # undef UINTMAX_C # define INTMAX_C(c) c##LL # define UINTMAX_C(c) c##ULL -# endif +# endif // defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__) -# endif +# endif // __hpux namespace boost { @@ -89,6 +89,9 @@ using ::intmax_t; using ::uintmax_t; + using ::intptr_t; + using ::uintptr_t; + } // namespace boost #elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) @@ -282,6 +285,19 @@ typedef uint32_t uintmax_t; # endif +namespace detail { + +template struct void_size_int; + +template<> struct void_size_int<2u> { typedef int16_t i; typedef uint16_t u; }; +template<> struct void_size_int<4u> { typedef int32_t i; typedef uint32_t u; }; +template<> struct void_size_int<8u> { typedef int64_t i; typedef uint64_t u; }; + +} + +typedef detail::void_size_int::i intptr_t; +typedef detail::void_size_int::u uintptr_t; + } // namespace boost