Prefer inttypes.h to doing the #ifdef dance everywhere
authorMikko Rasa <tdb@tdb.fi>
Wed, 1 Aug 2012 14:30:58 +0000 (17:30 +0300)
committerMikko Rasa <tdb@tdb.fi>
Wed, 1 Aug 2012 14:30:58 +0000 (17:30 +0300)
source/core/hash.cpp
source/core/hash.h
source/io/seekable.h
source/strings/lexicalcast.cpp
source/time/rawtime.h

index 26e60592618e9e15847927e51e9dfec8626b6bd6..fe5e339c5aedc9ff0691ada988705fa0e6949898 100644 (file)
@@ -10,7 +10,7 @@ http://en.wikipedia.org/wiki/Fowler-Noll-Vo_hash_function
 http://www.isthe.com/chongo/tech/comp/fnv/index.html
 */
 
-unsigned hash32(const void *data, unsigned size, unsigned bits)
+UInt32 hash32(const void *data, unsigned size, unsigned bits)
 {
        if(bits==0 || bits>32)
                throw invalid_argument("hash32");
@@ -28,15 +28,15 @@ unsigned hash32(const void *data, unsigned size, unsigned bits)
        return result;
 }
 
-HashValue64 hash64(const void *data, unsigned size, unsigned bits)
+UInt64 hash64(const void *data, unsigned size, unsigned bits)
 {
        if(bits==0 || bits>64)
                throw invalid_argument("hash64");
 
-       static const HashValue64 prime = 1099511628211ULL;
-       static const HashValue64 offset = 14695981039346656037ULL;
+       static const UInt64 prime = 1099511628211ULL;
+       static const UInt64 offset = 14695981039346656037ULL;
 
-       HashValue64 result = offset;
+       UInt64 result = offset;
        for(unsigned i=0; i<size; ++i)
                result = (result^*(reinterpret_cast<const unsigned char *>(data)+i))*prime;
 
index bb3de0514859922447af63c00a431ec2b7f95d6b..75aba09a57d8e04dfb0a06cdf05f29d90f4c3f4a 100644 (file)
@@ -2,21 +2,16 @@
 #define MSP_CORE_HASH_H_
 
 #include <string>
+#include "inttypes.h"
 
 namespace Msp {
 
-#ifdef MSVC
-typedef __uint64 HashValue64;
-#else
-typedef unsigned long long HashValue64;
-#endif
-
 /**
 Computes a 32-bit Fowler-Noll-Vo (FNV-1a) hash.  The number of bits can be
 limited to less than 32, in which case XOR-folding is used to reduce the hash
 size.
 */
-unsigned hash32(const void *, unsigned, unsigned = 32);
+UInt32 hash32(const void *, unsigned, unsigned = 32);
 
 /**
 Convenience function to compute a 32-bit hash of a string.
@@ -28,12 +23,12 @@ inline unsigned hash32(const std::string &s, unsigned b = 32)
 Computes a 64-bit Fowler-Noll-Vo (FNV-1a) hash.  Note that even if bits is
 limited to 32 or less, this does not produce the same result as hash32.
 */
-HashValue64 hash64(const void *, unsigned, unsigned = 64);
+UInt64 hash64(const void *, unsigned, unsigned = 64);
 
 /**
 Convenience function to compute a 64-bit hash of a string.
 */
-inline HashValue64 hash64(const std::string &s, unsigned b = 64)
+inline UInt64 hash64(const std::string &s, unsigned b = 64)
 { return hash64(s.data(), s.size(), b); }
 
 } // namespace Msp
index 9522311f55b32ae2f75bd2f62f9e233a3f28a6fd..1fc3f89ed58576fd73c1b68527b51f80133c1f1d 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_IO_SEEKABLE_H_
 #define MSP_IO_SEEKABLE_H_
 
+#include <msp/core/inttypes.h>
 #include "base.h"
 
 namespace Msp {
@@ -8,11 +9,7 @@ namespace IO {
 
 class Handle;
 
-#ifdef MSVC
-typedef __int64 SeekOffset;
-#else
-typedef long long SeekOffset;
-#endif
+typedef Int64 SeekOffset;
 
 enum SeekType
 {
index 782f4a8537adb05583c6e45e68c6b80620439142..71e346b7651818f9c91006fdfacaa8dce05613ed 100644 (file)
@@ -1,5 +1,6 @@
 #include <cmath>
 #include <limits>
+#include <msp/core/inttypes.h>
 #include "format.h"
 #include "lexicalcast.h"
 
@@ -20,11 +21,7 @@ struct Temporary
 template<typename T>
 struct Temporary<T, true>
 {
-#ifdef WIN32
-       typedef __int64 Type;
-#else
-       typedef unsigned long long Type;
-#endif
+       typedef UInt64 Type;
 };
 
 /* Helper to avoid warnings about an unsigned type never being < 0 */
index 76524509990986fd55b0eaa78a9cd366bee95c00..1af7956f25c09a5bb0103cb3e8f1b08b3094fbef 100644 (file)
@@ -1,14 +1,12 @@
 #ifndef MSP_TIME_RAWTIME_H_
 #define MSP_TIME_RAWTIME_H_
 
+#include <msp/core/inttypes.h>
+
 namespace Msp {
 namespace Time {
 
-#ifdef MSVC
-typedef __int64 RawTime;
-#else
-typedef long long RawTime;
-#endif
+typedef Int64 RawTime;
 
 } // namespace Time
 } // namespace Msp