/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#pragma once
#include <stdexcept>
+
#include <folly/Conv.h>
#include <folly/Likely.h>
#include <folly/Portability.h>
namespace folly {
class BadFormatArg : public std::invalid_argument {
- public:
- explicit BadFormatArg(const std::string& msg)
- : std::invalid_argument(msg) {}
+ using invalid_argument::invalid_argument;
};
+[[noreturn]] void throwBadFormatArg(char const* msg);
+[[noreturn]] void throwBadFormatArg(std::string const& msg);
+
/**
* Parsed format argument.
*/
template <typename... Args>
[[noreturn]] inline void FormatArg::error(Args&&... args) const {
- throw BadFormatArg(errorStr(std::forward<Args>(args)...));
+ throwBadFormatArg(errorStr(std::forward<Args>(args)...));
}
template <bool emptyOk>
if (e[-1] == ']') {
--e;
p = static_cast<const char*>(memchr(b, '[', size_t(e - b)));
- enforce(p, "unmatched ']'");
+ enforce(p != nullptr, "unmatched ']'");
} else {
p = static_cast<const char*>(memchr(b, '.', size_t(e - b)));
}
}
}
-} // namespace folly
+} // namespace folly