X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftype.h;h=58766289bc172a0e214917c961452976fac5645e;hb=8955db30f9cd1c1566b349da29e669f065f84e36;hp=72d148a0e16631b2440747fd2c20a1556597b728;hpb=818ead7b6ccef1e4d2435cc959bc07f910fcde46;p=libs%2Fdatafile.git diff --git a/source/type.h b/source/type.h index 72d148a..5876628 100644 --- a/source/type.h +++ b/source/type.h @@ -1,6 +1,7 @@ #ifndef MSP_DATAFILE_TYPE_H_ #define MSP_DATAFILE_TYPE_H_ +#include #include namespace Msp { @@ -19,11 +20,7 @@ struct Symbol struct IntType { static const char signature = 'i'; -#ifdef MSVC - typedef __int64 Store; -#else - typedef long long int Store; -#endif + typedef Int64 Store; typedef Store Load; }; @@ -55,6 +52,16 @@ struct SymbolType typedef Symbol Store; }; +const char valid_signatures[] = +{ + IntType::signature, + FloatType::signature, + BoolType::signature, + StringType::signature, + SymbolType::signature, + 0 +}; + template struct HasLoadType { @@ -90,13 +97,13 @@ struct TypeInfo: IntType { }; template<> struct TypeInfo: IntType { }; -#ifdef MSVC +#if defined(_MSC_VER) template<> struct TypeInfo<__int64, false>: IntType { }; template<> struct TypeInfo: IntType { }; -#else +#elif defined(__GNUC__) template<> struct TypeInfo: IntType { };