#ifndef CEPH_COMMON_CONVENIENCE_H
#define CEPH_COMMON_CONVENIENCE_H
-#if __has_include(<optional>)
namespace ceph {
// Lock Factories
return std::forward<Fun>(fun)(std::forward<Args>(args)...);
}
}
-#endif // __has_include(<optional>)
// Lock Types
// ----------
return std::forward<U>(u);
}
-
+#if __has_include(<optional>)
// Same thing but for std::optional
template<typename T, typename F>
else
return std::forward<U>(u);
}
+#endif // __has_include(<optional>)
+
namespace _convenience {
template<typename... Ts, typename F, std::size_t... Is>