+std::system_error makeSystemError(Args&&... args) {
+ return makeSystemErrorExplicit(errno, std::forward<Args>(args)...);
+}
+
+// Helper to throw std::system_error
+[[noreturn]] inline void throwSystemErrorExplicit(int err, const char* msg) {
+ throw makeSystemErrorExplicit(err, msg);
+}
+
+template <class... Args>
+[[noreturn]] void throwSystemErrorExplicit(int err, Args&&... args) {
+ throw makeSystemErrorExplicit(err, std::forward<Args>(args)...);
+}
+
+// Helper to throw std::system_error from errno and components of a string