X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftype.h;h=a7c57c40d230b55e15dc1d5313039e1d39cf347a;hb=9bd3968eaaabb278d22f182365d022704d2a2cf1;hp=5a87a10222a84794341d9a167c94786ae022927f;hpb=a582163d380833b1370ba067a1fd0ad5c2984723;p=libs%2Fdatafile.git diff --git a/source/type.h b/source/type.h index 5a87a10..a7c57c4 100644 --- a/source/type.h +++ b/source/type.h @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspdatafile -Copyright © 2010 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_DATAFILE_TYPE_H_ #define MSP_DATAFILE_TYPE_H_ @@ -17,7 +10,8 @@ struct Symbol { std::string name; - Symbol(const std::string &n): name(n) { } + template + Symbol(const T &n): name(lexical_cast(n)) { } template operator T() const { return lexical_cast(name); } }; @@ -25,7 +19,12 @@ struct Symbol struct IntType { static const char signature = 'i'; +#ifdef MSVC + typedef __int64 Store; +#else typedef long long int Store; +#endif + typedef Store Load; }; struct FloatType @@ -74,11 +73,19 @@ struct TypeInfo: IntType { }; template<> struct TypeInfo: IntType { }; +#ifdef MSVC +template<> +struct TypeInfo<__int64>: IntType { }; + +template<> +struct TypeInfo: IntType { }; +#else template<> struct TypeInfo: IntType { }; template<> struct TypeInfo: IntType { }; +#endif template<> struct TypeInfo: FloatType { };