No need for a wrapping structure for posixTimeToDuration
[folly.git] / folly / FormatArg.h
index 48311e3d4e7cd18a77aeacb553dd0d4c98fc7ee9..a6d4fb63865eb3b7cd0cf0faec1641274f0b10f8 100644 (file)
@@ -17,6 +17,7 @@
 #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.
  */
@@ -212,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>
@@ -273,4 +275,4 @@ inline int FormatArg::splitIntKey() {
   }
 }
 
-}  // namespace folly
+} // namespace folly