static_assert( __cplusplus > 2020'00 ); #pragma once #include #include namespace Alepha::Hydrogen::Utility ::detail:: ScopedState_m { inline namespace exports { class ScopedState : boost::noncopyable { private: bool &state; public: ~ScopedState() { state= false; } explicit ScopedState( bool &state ) : state( state ) { state= true; } }; } } namespace Alepha::Hydrogen::Utility::inline exports::inline ScopedState_m { using namespace detail::ScopedState_m::exports; }