#ifndef MSP_IO_MODE_H_
#define MSP_IO_MODE_H_
+#include <stdexcept>
+
namespace Msp {
namespace IO {
inline Mode operator~(Mode m)
{ return Mode(~static_cast<int>(m)); }
+inline void adjust_mode(Mode &m, Mode f, bool b)
+{ m = b ? (m|f) : (m&~f); }
+
+
+class invalid_access: public std::logic_error
+{
+public:
+ invalid_access(Mode);
+ ~invalid_access() throw() { }
+};
+
} // namespace IO
} // namespace Msp