Move the guts of try_and_catch into a detail namespace
[folly.git] / folly / ExceptionWrapper.h
index a44d3dd790206523a10f39a88964294dfcae379d..c444d1fe3015a3290f693936bc6b948bd73fd3e3 100644 (file)
@@ -395,6 +395,8 @@ fbstring exceptionStr(const exception_wrapper& ew);
  * });
  */
 
+namespace detail {
+
 template <typename... Exceptions>
 class try_and_catch;
 
@@ -450,5 +452,11 @@ class try_and_catch<> : public exception_wrapper {
     fn();
   }
 };
+}
+
+template <typename... Exceptions, typename F>
+exception_wrapper try_and_catch(F&& fn) {
+  return detail::try_and_catch<Exceptions...>(std::forward<F>(fn));
+} // detail
 
 } // folly