/*
- * Copyright 2015 Facebook, Inc.
+ * Copyright 2016 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <folly/Exception.h>
#include <folly/FormatTraits.h>
#include <folly/Traits.h>
+#include <folly/portability/Windows.h>
// Ignore -Wformat-nonliteral warnings within this file
#pragma GCC diagnostic push
char sign;
if (std::is_signed<T>::value) {
if (folly::is_negative(val_)) {
- uval = static_cast<UT>(-val_);
+ uval = -static_cast<UT>(val_);
sign = '-';
} else {
uval = static_cast<UT>(val_);
"' specifier");
valBufBegin = valBuf + 3; // room for sign and base prefix
-#ifdef _MSC_VER
- char valBuf2[valBufSize];
- snprintf(valBuf2, valBufSize, "%ju", static_cast<uintmax_t>(uval));
- int len = GetNumberFormat(
- LOCALE_USER_DEFAULT,
- 0,
- valBuf2,
- nullptr,
- valBufBegin,
- (int)((valBuf + valBufSize) - valBufBegin)
- );
-#elif defined(__ANDROID__)
+#if defined(__ANDROID__)
int len = snprintf(valBufBegin, (valBuf + valBufSize) - valBufBegin,
"%" PRIuMAX, static_cast<uintmax_t>(uval));
#else
int len = snprintf(valBufBegin, (valBuf + valBufSize) - valBufBegin,
- "%'ju", static_cast<uintmax_t>(uval));
+ "%ju", static_cast<uintmax_t>(uval));
#endif
// valBufSize should always be big enough, so this should never
// happen.
class TryFormatValue {
public:
template <class FormatCallback>
- static void formatOrFail(T& value, FormatArg& arg, FormatCallback& cb) {
+ static void formatOrFail(T& /* value */,
+ FormatArg& arg,
+ FormatCallback& /* cb */) {
arg.error("No formatter available for this type");
}
};
static constexpr size_t valueCount = std::tuple_size<Tuple>::value;
template <size_t K, class Callback>
- typename std::enable_if<K == valueCount>::type
- doFormatFrom(size_t i, FormatArg& arg, Callback& cb) const {
+ typename std::enable_if<K == valueCount>::type doFormatFrom(
+ size_t i, FormatArg& arg, Callback& /* cb */) const {
arg.enforce("tuple index out of range, max=", i);
}