14 M_RDWR = M_READ|M_WRITE,
20 inline Mode operator|(Mode m, Mode n)
21 { return Mode(static_cast<int>(m)|static_cast<int>(n)); }
23 inline Mode operator&(Mode m, Mode n)
24 { return Mode(static_cast<int>(m)&static_cast<int>(n)); }
26 inline Mode operator~(Mode m)
27 { return Mode(~static_cast<int>(m)); }
29 inline void adjust_mode(Mode &m, Mode f, bool b)
30 { m = b ? (m|f) : (m&~f); }
33 class invalid_access: public std::logic_error
37 ~invalid_access() throw() override = default;