projects
/
folly.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Suppress more warnings for MSVC
[folly.git]
/
folly
/
Conv.h
diff --git
a/folly/Conv.h
b/folly/Conv.h
index 20cf3d51b2fe84c208014bf30732e129a211c95a..17b2fc67df434ba177755f78e3dd5ea0703cd692 100644
(file)
--- a/
folly/Conv.h
+++ b/
folly/Conv.h
@@
-557,8
+557,11
@@
toAppend(Src value, Tgt * result) {
char buffer[20];
if (value < 0) {
result->push_back('-');
char buffer[20];
if (value < 0) {
result->push_back('-');
+ using u = std::make_signed<size_t>::type;
result->append(
result->append(
- buffer, uint64ToBufferUnsafe(uint64_t(-uint64_t(value)), buffer));
+ buffer,
+ uint64ToBufferUnsafe(
+ static_cast<size_t>(-static_cast<u>(value)), buffer));
} else {
result->append(buffer, uint64ToBufferUnsafe(uint64_t(value), buffer));
}
} else {
result->append(buffer, uint64ToBufferUnsafe(uint64_t(value), buffer));
}
@@
-1179,13
+1182,14
@@
parseTo(StringPiece src, Tgt& out) {
namespace detail {
/**
namespace detail {
/**
- * Bool to integral doesn't need any special checks, and this
+ * Bool to integral
/float
doesn't need any special checks, and this
* overload means we aren't trying to see if a bool is less than
* an integer.
*/
template <class Tgt>
typename std::enable_if<
* overload means we aren't trying to see if a bool is less than
* an integer.
*/
template <class Tgt>
typename std::enable_if<
- !std::is_same<Tgt, bool>::value && std::is_integral<Tgt>::value,
+ !std::is_same<Tgt, bool>::value &&
+ (std::is_integral<Tgt>::value || std::is_floating_point<Tgt>::value),
Expected<Tgt, ConversionCode>>::type
convertTo(const bool& value) noexcept {
return static_cast<Tgt>(value ? 1 : 0);
Expected<Tgt, ConversionCode>>::type
convertTo(const bool& value) noexcept {
return static_cast<Tgt>(value ? 1 : 0);