Fix warning in Visual Studio:

warning C4146: unary minus operator applied to unsigned type, result still unsigned
This commit is contained in:
Jesse Beder
2013-04-01 21:43:09 -05:00
parent c335c8dd75
commit 71f35b1104

View File

@@ -58,7 +58,7 @@ namespace YAML
} }
}; };
#define YAML_DEFINE_CONVERT_STREAMABLE(type)\ #define YAML_DEFINE_CONVERT_STREAMABLE(type, negative_op)\
template<>\ template<>\
struct convert<type> {\ struct convert<type> {\
static Node encode(const type& rhs) {\ static Node encode(const type& rhs) {\
@@ -80,7 +80,7 @@ namespace YAML
rhs = std::numeric_limits<type>::infinity();\ rhs = std::numeric_limits<type>::infinity();\
return true;\ return true;\
} else if(conversion::IsNegativeInfinity(input)) {\ } else if(conversion::IsNegativeInfinity(input)) {\
rhs = -std::numeric_limits<type>::infinity();\ rhs = negative_op std::numeric_limits<type>::infinity();\
return true;\ return true;\
}\ }\
}\ }\
@@ -94,22 +94,30 @@ namespace YAML
}\ }\
} }
YAML_DEFINE_CONVERT_STREAMABLE(int); #define YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(type)\
YAML_DEFINE_CONVERT_STREAMABLE(unsigned); YAML_DEFINE_CONVERT_STREAMABLE(type, -)
YAML_DEFINE_CONVERT_STREAMABLE(short);
YAML_DEFINE_CONVERT_STREAMABLE(unsigned short);
YAML_DEFINE_CONVERT_STREAMABLE(long);
YAML_DEFINE_CONVERT_STREAMABLE(unsigned long);
YAML_DEFINE_CONVERT_STREAMABLE(long long);
YAML_DEFINE_CONVERT_STREAMABLE(unsigned long long);
YAML_DEFINE_CONVERT_STREAMABLE(char); #define YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(type)\
YAML_DEFINE_CONVERT_STREAMABLE(unsigned char); YAML_DEFINE_CONVERT_STREAMABLE(type, +)
YAML_DEFINE_CONVERT_STREAMABLE(float); YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(int);
YAML_DEFINE_CONVERT_STREAMABLE(double); YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(short);
YAML_DEFINE_CONVERT_STREAMABLE(long double); YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long);
YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long long);
YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(unsigned);
YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned short);
YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned long);
YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned long long);
YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(char);
YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned char);
YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(float);
YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(double);
YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long double);
#undef YAML_DEFINE_CONVERT_STREAMABLE_SIGNED
#undef YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED
#undef YAML_DEFINE_CONVERT_STREAMABLE #undef YAML_DEFINE_CONVERT_STREAMABLE
// bool // bool