#include <folly/portability/Windows.h>
// Ignore -Wformat-nonliteral warnings within this file
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+FOLLY_PUSH_WARNING
+FOLLY_GCC_DISABLE_WARNING("-Wformat-nonliteral")
namespace folly {
Args&&... args)
: str_(str),
values_(FormatValue<typename std::decay<Args>::type>(
- std::forward<Args>(args))...) {
- static_assert(
- !containerMode || sizeof...(Args) == 1,
- "Exactly one argument required in container mode");
-}
+ std::forward<Args>(args))...) {}
template <class Derived, bool containerMode, class... Args>
template <class Output>
arg.widthIndex == FormatArg::kNoIndex,
"cannot provide width arg index without value arg index");
int sizeArg = nextArg++;
- arg.width = getSizeArg(size_t(sizeArg), arg);
+ arg.width = asDerived().getSizeArg(size_t(sizeArg), arg);
}
argIndex = nextArg++;
arg.enforce(
arg.widthIndex != FormatArg::kNoIndex,
"cannot provide value arg index without width arg index");
- arg.width = getSizeArg(size_t(arg.widthIndex), arg);
+ arg.width = asDerived().getSizeArg(size_t(arg.widthIndex), arg);
}
try {
"folly::format: may not have both default and explicit arg indexes");
}
- doFormat(size_t(argIndex), arg, out);
+ asDerived().doFormat(size_t(argIndex), arg, out);
}
}
} // namespace folly
-#pragma GCC diagnostic pop
+FOLLY_POP_WARNING