Skip to content

Commit 874146a

Browse files
authored
Merge pull request #406 from derekxgl/patch-1
change to use std::numeric_limits min & max
2 parents 5834222 + 04293a7 commit 874146a

File tree

1 file changed

+10
-31
lines changed
  • sbe-tool/src/main/cpp/sbe

1 file changed

+10
-31
lines changed

sbe-tool/src/main/cpp/sbe/sbe.h

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <limits.h>
2525
#include <stdexcept>
2626
#include <cstdint>
27+
#include <limits>
2728

2829
/*
2930
* Types used by C++ codecs
@@ -77,37 +78,15 @@ namespace sbe {
7778
#else
7879
#define SBE_BOUNDS_CHECK_EXPECT(exp,c) (__builtin_expect(exp,c))
7980
#endif
80-
81-
#if defined(__GNUC__)
82-
#define SBE_NULLVALUE_INT8 (INT8_MIN)
83-
#define SBE_NULLVALUE_INT16 (INT16_MIN)
84-
#define SBE_NULLVALUE_INT32 (INT32_MIN)
85-
#define SBE_NULLVALUE_INT64 (INT64_MIN)
86-
#define SBE_NULLVALUE_UINT8 (UINT8_MAX)
87-
#define SBE_NULLVALUE_UINT16 (UINT16_MAX)
88-
#define SBE_NULLVALUE_UINT32 (UINT32_MAX)
89-
#define SBE_NULLVALUE_UINT64 (UINT64_MAX)
90-
#elif defined(_MSC_VER)
91-
// Visual C++ does not handle minimum integer values properly
92-
// See: http://msdn.microsoft.com/en-us/library/4kh09110.aspx
93-
#define SBE_NULLVALUE_INT8 (SCHAR_MIN)
94-
#define SBE_NULLVALUE_INT16 (SHRT_MIN)
95-
#define SBE_NULLVALUE_INT32 (LONG_MIN)
96-
#define SBE_NULLVALUE_INT64 (LLONG_MIN)
97-
#define SBE_NULLVALUE_UINT8 (UCHAR_MAX)
98-
#define SBE_NULLVALUE_UINT16 (USHRT_MAX)
99-
#define SBE_NULLVALUE_UINT32 (ULONG_MAX)
100-
#define SBE_NULLVALUE_UINT64 (ULLONG_MAX)
101-
#else
102-
#define SBE_NULLVALUE_INT8 (INT8_MIN)
103-
#define SBE_NULLVALUE_INT16 (INT16_MIN)
104-
#define SBE_NULLVALUE_INT32 (INT32_MIN)
105-
#define SBE_NULLVALUE_INT64 (INT64_MIN)
106-
#define SBE_NULLVALUE_UINT8 (UINT8_MAX)
107-
#define SBE_NULLVALUE_UINT16 (UINT16_MAX)
108-
#define SBE_NULLVALUE_UINT32 (UINT32_MAX)
109-
#define SBE_NULLVALUE_UINT64 (UINT64_MAX)
110-
#endif
81+
82+
#define SBE_NULLVALUE_INT8 std::numeric_limits<std::int8_t>::min()
83+
#define SBE_NULLVALUE_INT16 std::numeric_limits<std::int16_t>::min()
84+
#define SBE_NULLVALUE_INT32 std::numeric_limits<std::int32_t>::min()
85+
#define SBE_NULLVALUE_INT64 std::numeric_limits<std::int64_t>::min()
86+
#define SBE_NULLVALUE_UINT8 std::numeric_limits<std::uint8_t>::max()
87+
#define SBE_NULLVALUE_UINT16 std::numeric_limits<std::uint16_t>::max()
88+
#define SBE_NULLVALUE_UINT32 std::numeric_limits<std::uint32_t>::max()
89+
#define SBE_NULLVALUE_UINT64 std::numeric_limits<std::uint64_t>::max()
11190

11291
namespace MetaAttribute {
11392

0 commit comments

Comments
 (0)