diff options
Diffstat (limited to 'nihil.util/save_errno.ccm')
| -rw-r--r-- | nihil.util/save_errno.ccm | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/nihil.util/save_errno.ccm b/nihil.util/save_errno.ccm deleted file mode 100644 index 27567f8..0000000 --- a/nihil.util/save_errno.ccm +++ /dev/null @@ -1,35 +0,0 @@ -// This source code is released into the public domain. -module; - -#include <cerrno> - -export module nihil.util:save_errno; - -// save_errno: save the current value of errno and restore it when we're destroyed. -// this allows wrappers around C functions that use errno to preserve the caller's -// errno value. - -namespace nihil { - -export struct save_errno final -{ - save_errno() : m_errno(errno) {} - - ~save_errno() - { - errno = m_errno; - } - - // Not copyable - save_errno(const save_errno&) = delete; - auto operator=(const save_errno&) -> save_errno & = delete; - - // Not movable - save_errno(save_errno&&) = delete; - auto operator=(save_errno&&) -> save_errno & = delete; - -private: - int m_errno; -}; - -} // namespace nihil |
