Finalize fix for #105

Decided to go with the simple ifndef solution since the template
acrobatics to disable things just for MSVC would not ahve been worth it

Tried to add ARM build for MSVC but this turns out to be hard to do without
making a windows store/phone app, which requirse an active dev license
This commit is contained in:
Shane Grant
2014-08-29 22:31:20 -07:00
parent fdb822f4fd
commit 2b8bbab316
+4 -2
View File
@@ -601,6 +601,9 @@ namespace cereal
//! Loads a value from the current node - string overload
void loadValue(std::string & val) { search(); val = itsIteratorStack.back().value().GetString(); ++itsIteratorStack.back(); }
// Special cases to handle various flavors of long, which tend to conflict with
// the int32_t or int64_t on various compiler/OS combinations. MSVC doesn't need any of this.
#ifndef _MSC_VER
private:
//! 32 bit signed long loading from current node
template <class T> inline
@@ -621,9 +624,8 @@ namespace cereal
template <class T> inline
typename std::enable_if<sizeof(T) == sizeof(std::uint64_t) && !std::is_signed<T>::value, void>::type
loadLong(T & lu){ loadValue( reinterpret_cast<std::uint64_t&>( lu ) ); }
public:
#ifndef _MSC_VER
//! Serialize a long if it would not be caught otherwise
template <class T> inline
typename std::enable_if<std::is_same<T, long>::value &&