fix cstdint.hpp

This commit is contained in:
bolero-MURAKAMI 2014-07-04 00:16:33 +09:00
parent 720500dd75
commit ddde1f87e5

View file

@ -11,36 +11,64 @@
#include <climits> #include <climits>
#include <cstdint> #include <cstdint>
#include <sprout/config.hpp> #include <sprout/config.hpp>
#include <sprout/detail/predef.hpp>
// //
// SPROUT_INT[N]_C // SPROUT_INT[N]_C
// SPROUT_UINT[N]_C // SPROUT_UINT[N]_C
// //
#if SPROUT_CLANG_IN_RANGE((3, 0, 0), (3, 3, 0)) && !defined(__STDC_CONSTANT_MACROS) #ifndef INT8_C
# define SPROUT_INT8_C(n) n # define SPROUT_INT8_C(n) n
#else
# define SPROUT_INT8_C(n) INT8_C(n)
#endif
#ifndef UINT8_C
# define SPROUT_UINT8_C(n) n # define SPROUT_UINT8_C(n) n
#else
# define SPROUT_UINT8_C(n) UINT8_C(n)
#endif
#ifndef INT16_C
# define SPROUT_INT16_C(n) n # define SPROUT_INT16_C(n) n
#else
# define SPROUT_INT16_C(n) INT16_C(n)
#endif
#ifndef UINT16_C
# define SPROUT_UINT16_C(n) n # define SPROUT_UINT16_C(n) n
#else
# define SPROUT_UINT16_C(n) UINT16_C(n)
#endif
#ifndef INT32_C
# if LONG_MAX == LLONG_MAX # if LONG_MAX == LLONG_MAX
# define SPROUT_INT32_C(n) n # define SPROUT_INT32_C(n) n
# define SPROUT_UINT32_C(n) n ## U
# define SPROUT_INT64_C(n) n ## UL
# define SPROUT_UINT64_C(n) n ## UL
# else # else
# define SPROUT_INT32_C(n) n ## L # define SPROUT_INT32_C(n) n ## L
# endif
#else
# define SPROUT_INT32_C(n) INT32_C(n)
#endif
#ifndef UINT32_C
# if LONG_MAX == LLONG_MAX
# define SPROUT_UINT32_C(n) n ## U
# else
# define SPROUT_UINT32_C(n) n ## UL # define SPROUT_UINT32_C(n) n ## UL
# define SPROUT_INT64_C(n) n ## ULL # endif
# define SPROUT_UINT32_C(n) UINT32_C(n)
#endif
#ifndef INT64_C
# if LONG_MAX == LLONG_MAX
# define SPROUT_INT64_C(n) n ## L
# else
# define SPROUT_INT64_C(n) n ## LL
# endif
#else
# define SPROUT_INT64_C(n) INT64_C(n)
#endif
#ifndef UINT64_C
# if LONG_MAX == LLONG_MAX
# define SPROUT_UINT64_C(n) n ## UL
# else
# define SPROUT_UINT64_C(n) n ## ULL # define SPROUT_UINT64_C(n) n ## ULL
# endif # endif
#else #else
# define SPROUT_INT8_C(n) INT8_C(n)
# define SPROUT_UINT8_C(n) UINT8_C(n)
# define SPROUT_INT16_C(n) INT16_C(n)
# define SPROUT_UINT16_C(n) UINT16_C(n)
# define SPROUT_INT32_C(n) INT32_C(n)
# define SPROUT_UINT32_C(n) UINT32_C(n)
# define SPROUT_INT64_C(n) INT64_C(n)
# define SPROUT_UINT64_C(n) UINT64_C(n) # define SPROUT_UINT64_C(n) UINT64_C(n)
#endif #endif