56 gdb::optional<long> o;
57 auto moved_to = std::move(o);
63 const long val = 0x1234ABCD;
64 gdb::optional<long> o { gdb::in_place, val};
65 auto moved_to = std::move(o);
67 VERIFY( *moved_to == val );
72 gdb::optional<tracker> o;
73 auto moved_to = std::move(o);
80 gdb::optional<tracker> o { gdb::in_place, 333 };
81 auto moved_to = std::move(o);
83 VERIFY( moved_to->value == 333 );
85 VERIFY( o && o->value == -1 );
88 enum outcome { nothrow, caught, bad_catch };
91 outcome result = nothrow;
92 gdb::optional<throwing_move> o;
96 auto moved_to = std::move(o);
101 { result = bad_catch; }
103 VERIFY( result == nothrow );
107 outcome result = nothrow;
108 gdb::optional<throwing_move> o { gdb::in_place };
112 auto moved_to = std::move(o);
117 { result = bad_catch; }
119 VERIFY( result == caught );