| { | { | ||||
| auto movedFrom = sr::scope_guard([&calls] { ++calls; }); | auto movedFrom = sr::scope_guard([&calls] { ++calls; }); | ||||
| auto guard = std::move(movedFrom); | auto guard = std::move(movedFrom); | ||||
| static_cast<void>(guard); | |||||
| } | } | ||||
| REQUIRE(calls == 1); | REQUIRE(calls == 1); | ||||
| { | { | ||||
| auto movedFrom = sr::scope_guard([&executed] { executed = true; }); | auto movedFrom = sr::scope_guard([&executed] { executed = true; }); | ||||
| auto guard = std::move(movedFrom); | auto guard = std::move(movedFrom); | ||||
| static_cast<void>(guard); | |||||
| } | } | ||||
| REQUIRE(executed == true); | REQUIRE(executed == true); | ||||
| auto movedFrom = sr::scope_guard([&executed] { executed = true; }); | auto movedFrom = sr::scope_guard([&executed] { executed = true; }); | ||||
| movedFrom.release(); | movedFrom.release(); | ||||
| auto guard = std::move(movedFrom); | auto guard = std::move(movedFrom); | ||||
| static_cast<void>(guard); | |||||
| } | } | ||||
| REQUIRE(executed == false); | REQUIRE(executed == false); |