98 using O = gdb::optional<value_type>;
100 auto const make = [](
S s = S::zero) {
return value_type { s }; };
102 enum outcome_type { nothrow, caught, bad_catch };
108 value_type v = make(S::throwing_copy_assignment);
110 VERIFY( o && o->state == S::throwing_copy_assignment );
115 value_type v = make(S::throwing_move_assignment);
117 VERIFY( o && o->state == S::throwing_move_assignment );
121 ATTRIBUTE_UNUSED outcome_type outcome {};
130 { outcome = caught; }
132 { outcome = bad_catch; }
138 ATTRIBUTE_UNUSED outcome_type outcome {};
147 { outcome = caught; }
149 { outcome = bad_catch; }