No need for a wrapping structure for posixTimeToDuration
[folly.git] / folly / FormatArg.h
index fec6e811773abe422486cdf2dd11c6f234c462c5..a6d4fb63865eb3b7cd0cf0faec1641274f0b10f8 100644 (file)
 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.
  */
@@ -213,7 +214,7 @@ inline std::string FormatArg::errorStr(Args&&... args) const {
 
 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>
@@ -274,4 +275,4 @@ inline int FormatArg::splitIntKey() {
   }
 }
 
-}  // namespace folly
+} // namespace folly