88 struct global_state_params {
89 std::weak_ptr<fe_trap> observer;
92 static global_state_params global_state;
94 struct scoped_instance {
95 explicit scoped_instance(std::shared_ptr<fe_trap> ptr)
96 : m_resource{std::move(ptr)} {}
97 scoped_instance(scoped_instance
const &) =
delete;
98 scoped_instance(scoped_instance &&)
noexcept =
default;
99 scoped_instance &operator=(scoped_instance
const &) =
delete;
100 scoped_instance &operator=(scoped_instance &&)
noexcept =
default;
101 bool is_unique()
const {
return m_resource->is_unique(); }
102 int get_flags()
const {
return m_resource->get_flags(); }
105 std::shared_ptr<fe_trap> m_resource;
109 void operator()(
fe_trap *ptr) {
delete ptr; }
116 fe_trap(std::optional<int> excepts,
bool unique);
119 static int parse_excepts(std::optional<int> excepts);
135 static scoped_instance
143 static scoped_instance